You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

If-valintarakenne

if-rakenteen yksinkertaisin muoto on

if (ehto)
{
    lauseita
}
  • 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:

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 a on nolla

if (!a) printf("a on nolla");
else    printf("a ei ole nolla");

3) muuttuja a tai (OR) 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 (AND) 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;
  • No labels
You must log in to comment.