Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

If-valintarakenne

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:

wiki-markup
Code Block

if (a<b) {
    printf
h2. 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");

&nbsp;&nbsp;&nbsp;



----


h2. Vertailu loogisten operaatioiden avulla


h4.

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&nbsp; printf("a on nolla");



2. muuttuja on nolla

if(\!a) printf("a on nolla");
else&nbsp; 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&nbsp; 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&nbsp; printf("molemmat muuttujat ovat epätosia");




----

h2. 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&nbsp; printf("a ja b ovat erisuuria");


2. muuttujat a ja b ovat erisuuria.



if(a\!=b) printf("a ja b ovat erisuuria");
else&nbsp; printf("a ja b ovat yhtäsuuria");


3. muuttuja a on pienempi kuin b.



if(a<b) printf("a ja b ovat erisuuria");
else&nbsp; 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&nbsp; 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&nbsp; 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&nbsp; printf("muuttujat a on suurempi tai}

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


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&nbsp; printf("muuttujat a on suurempi tai yhtäsuuri kuin b tai c on pienempi kuin d");


8. muuttujat a on suurempi&nbsp; tai yhtäsuuri kuin b ja c on pienempi kuin d.

if(a>=b && c<d) printf("muuttujat a on suurempi tai yhtäsuuri  }
else           { printf("a suurempi kuin b");

else&nbsp; printf("muuttujat a on suurempi tai yhtäsuuri kuin b ja  c on pienempi kuin d");

\\

&nbsp;if&nbsp; valinta voidaan tehdä monen vaihtoehdon välillä:

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if }

if-valinta voidaan tehdä monen vaihtoehdon välillä:

Code Block

if (ehto1) lauseke1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (ehto2) lauseke2;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (ehto3) lauseke3;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 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ä).

Code Block
Alistettuja if-lauseita käytetään usein tehokkaan ohjelmoinnin yhteydessä:

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(i)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(j) lauseke1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(k) lauseke2;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else lauseke3;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else lauseke4;
 *\_displayNameOrEmail\_* \- \_time\_ - Poista
\_text\_
&nbsp;(a>b) {
    if (a<2) lauseke1;
    if (c==5) lauseke2;
    else      lauseke3;
} else {
    lauseke4;
}