...
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:
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"); ---- 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 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"); ---- 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 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} |
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 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 } else { printf("a suurempi 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 } |
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
...
(sulkulauseke
...
voi
...
olla
...
myös
...
tyhjä).
Code Block |
---|
Alistettuja if-lauseita käytetään usein tehokkaan ohjelmoinnin yhteydessä: if(i) { if(j) lauseke1; if(k) lauseke2; else lauseke3; } else lauseke4; *\_displayNameOrEmail\_* \- \_time\_ - Poista \_text\_ (a>b) { if (a<2) lauseke1; if (c==5) lauseke2; else lauseke3; } else { lauseke4; } |