Versions Compared

Key

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

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(info)
      
{                 if(j) lauseke1;                 if(k) lauseke2;                 else lauseke3;        }
       else lauseke4;
_displayNameOrEmail_ - _time_ - Poista
_text_