Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

If-valintarakenne

Loogisilla- ja vertailuoperaatioilla testataan muuttujan tai muuttujien arvoja. Ehto saa arvokseen tosi tai epätosi.

Esimerkiksi

...

if-rakenteen yksinkertaisin muoto on

Code Block

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:

Code Block

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.

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");

   

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

Code Block

if (a) printf("a ei ole nolla");

...


else   printf("a on nolla");

2. ) muuttuja a on nolla

Code Block

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.

Code Block

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.

Code Block

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.

Code Block

if (a==b) printf("a ja b ovat yhtäsuuria");

...


else      printf("a ja b ovat erisuuria");

2. muuttujat a ja b ovat erisuuria.

Code Block

if (a!=b) printf("a ja b ovat erisuuria");

...


else      printf("a ja b ovat yhtäsuuria");

3. muuttuja a on pienempi kuin b.

Code Block

if (a<b) printf("a ja b ovat erisuuria");

...


else     printf("a ja b ovat yhtäsuuria");

4. muuttuja a on suurempi kuin b.

Code Block

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.

Code Block

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.

Code Block

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.

Code Block

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.

Code Block

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  if-valinta voidaan tehdä monen vaihtoehdon välillä:       if

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  (sulkulauseke voi olla myös tyhjä).
Alistettuja if-lauseita käytetään usein tehokkaan ohjelmoinnin yhteydessä:        

Code Block

if (i)

...

 {
    if (j) lauseke1;

...


    if (k) lauseke2;

...


    else   lauseke3;

...


}

...


else lauseke4;