Arvojen vertailu ja if-else rakenteet

Yleistä

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(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 (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;