...
If-valintarakenne
Loogisilla- ja vertailuoperaatioilla testataan muuttujan tai muuttujien arvoja. Ehto saa arvokseen tosi tai epätosi.
Esimerkiksi
if (a<b) printf ("a oli pienempi kuin b");
else printf ("a oli yhtäsuuri tai suurempi kuin b");
Testaus voidaan jakaa myös useampaan osaan.
if (a<b) printf ("a oli pienempi kuin b");
else if (a==b) printf ("a oli yhtäsuuri kuin b");
else printf ("a suurempi kuin b");
Vertailu loogisten operaatioiden avulla
Loogisilla operaatioilla saadaan informaatio siitä onko muuttuja nolla tai ei, lisäksi voidaan testata muuttujien yhtä- ja erisuuruutta.
1. muuttuja erisuuri kuin nolla
if(a) printf("a ei ole nolla");
else printf("a on nolla");
2. muuttuja on nolla
if(!a) printf("a on nolla");
else printf("a ei ole nolla");
3. muuttuja a tai muuttuja b on tosi (erisuuri kuin nolla), myös molemmat voivat olla tosia.
if(a||b) printf("muuttuja a tai muuttuja b on tosi (erisuuri kuin nolla), myös molemmat voivat olla tosia");
else printf("molemmat muuttujat ovat epätosia");
4. muuttuja a ja muuttuja b on tosi.
if(a&&b) printf("muuttuja a ja muuttuja b on tosi (erisuuri kuin nolla)");
else printf("molemmat muuttujat ovat epätosia");
Vertailuoperaattorit
Operaattoreilla verrataan muuttujia keskenään.
1. muuttujat a ja b ovat yhtäsuuria.
if(a==b) printf("a ja b ovat yhtäsuuria");
else printf("a ja b ovat erisuuria");
2. muuttujat a ja b ovat erisuuria.
if(a!=b) printf("a ja b ovat erisuuria");
else printf("a ja b ovat yhtäsuuria");
3. muuttuja a on pienempi kuin b.
if(a<b) printf("a ja b ovat erisuuria");
else printf("a ja b ovat yhtäsuuria");
4. muuttuja a on suurempi kuin b.
if(a>b) printf("muuttuja a on suurempi kuin b");
else printf("muuttuja a on suurempi kuin b");
5. muuttuja a on pienempi tai yhtäsuuri kuin b.
if(a<=b) printf("muuttuja a on pienempi tai yhtäsuuri kuin b");
else printf("muuttuja a on pienempi tai yhtäsuuri kuin b");
6. muuttujat a on suurempi tai yhtäsuuri kuin b.
if(a>=b) printf("muuttujat a on suurempi tai yhtäsuuri kuin b");
else printf("muuttujat a on suurempi tai yhtäsuuri kuin b");
7. muuttujat a on suurempi tai yhtäsuuri kuin b tai c on pienempi kuin d.
if(a>=b || c<d) printf("muuttujat a on suurempi tai yhtäsuuri kuin b");
else printf("muuttujat a on suurempi tai yhtäsuuri kuin b tai c on pienempi kuin d");
8. muuttujat a on suurempi tai yhtäsuuri kuin b ja c on pienempi kuin d.
if(a>=b && c<d) printf("muuttujat a on suurempi tai yhtäsuuri kuin b");
else printf("muuttujat a on suurempi tai yhtäsuuri kuin b ja c on pienempi kuin d");
if valinta voidaan tehdä monen vaihtoehdon välillä:
...
if-rakenteen yksinkertaisin muoto on
Code Block |
---|
if (ehto)
{
lauseita
}
|
- Ehto voidaan muodostaa seuraavilla: vertailuoperaattorit ja loogiset operaattorit.
- Aaltosulkeiden välissä olevat lauseet valitaan suoritettaviksi vain ehdon ollessa voimassa.
- Lauseita voi olla yksi tai useampia.
- Jos lauseita on vain yksi, ei ole välttämätöntä käyttää aaltosulkeita.
Esimerkiksi:
Code Block |
---|
if (a<b) {
printf("a oli pienempi kuin b");
}
|
if ja else -rakenne
if-rakenteseen voidaan lisätä vaihtoehtoinen haara, joka suoritetaan silloin kun ehto ei ole voimassa:
Code Block |
---|
if (ehto) {
lauseita
} else {
lauseita
}
|
Esimerkiksi:
Code Block |
---|
if (a<b) {
printf("a oli pienempi kuin b");
} else {
printf("a oli yhtäsuuri tai suurempi kuin b");
}
|
else if -rakenne
Testaus voidaan jakaa myös useampaan osaan:
Code Block |
---|
if (ehto1) {
lauseita1
} else if (ehto2) {
lauseita2
...
} else if (ehto_n) {
lauseita_n
} else {
lauseita3
}
|
- else-if haaroille ei ole mitään lukumäärärajoituksia, niitä voi olla n kappaletta.
Esimerkki:
Code Block |
---|
if (a<b) { printf("a oli pienempi kuin b"); }
else if (a==b) { printf("a oli yhtäsuuri kuin b"); }
else { printf("a suurempi kuin b"); }
|
if
-valinta voidaan tehdä monen vaihtoehdon välillä:
Code Block |
---|
if (ehto1) lauseke1;
else if (ehto2) lauseke2;
else if (ehto3) lauseke3;
else lauseke4; // tämä toteutetaan jos mikään ehto ei ole tosi
|
Lauseke1 voi koostua yhdestä käskystä tai {} sulkujen sisällä olevasta ohjelmalohkosta ohjelmalohkosta (sulkulauseke voi olla myös tyhjä). Alistettuja if-lauseita käytetään usein tehokkaan ohjelmoinnin yhteydessä:
if(i)
{
if(j) lauseke1;
if(k) lauseke2;
else lauseke3;
}
else lauseke4;
Code Block |
---|
if (a>b) {
if (a<2) lauseke1;
if (c==5) lauseke2;
else lauseke3;
} else {
lauseke4;
}
|