Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0
Wiki Markup
h1. Loogiset operaattorit

...



C-kielessä ovat käytössä seuraavat loogiset operaattorit:

...

operaattori

...


|| operaattori || merkitys (suluissa englanniksi)

...

!

...

negaatio eli kielto (NOT)

...

||

...

tai (OR)

...

&&

...

ja (AND)

Esimerkkejä

Loogisilla operaatioilla saadaan informaatio siitä onko muuttuja nolla tai ei, lisäksi voidaan testata muuttujien yhtä- ja erisuuruutta.

...

 ||
| {{\!}} | negaatio eli kielto (NOT) |
| {{\|\|}} | tai (OR) |
| {{&&}} | ja (AND) |

h2. Esimerkkejä

Loogisilla operaatioilla saadaan informaatio siitä onko muuttuja nolla tai ei, lisäksi voidaan testata muuttujien yhtä\- ja erisuuruutta.
# muuttuja {{a}} on nolla
{code}
if (!a) printf("a on nolla");
else    printf("a ei ole nolla");

...

{code}
# muuttuja {{a}} *tai* (OR) muuttuja {{b}} on tosi (erisuuri kuin nolla), myös molemmat voivat olla tosia.

...


{code

...

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

...

{code}
# muuttujat a on suurempi  tai yhtäsuuri kuin b ja c on pienempi kuin d.
{code}
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");
}

...

{code}
# muuttuja {{a}} *ja* (AND) muuttuja {{b}} on tosi.

...


{code

...

}
if (a && b) {
    printf("muuttuja a ja muuttuja b on tosi (erisuuri kuin nolla)");
} else {
    printf("molemmat muuttujat ovat epätosia");
}
{code}

...

# muuttujat a on suurempi tai yhtäsuuri kuin b tai c on pienempi kuin d.

...


{code

...

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

...

{code}

Useampia ehtoja voidaan myös 'ketjuttaa' samaan if-ehtoon loogisten operaattoreiden avulla. Ehtojen lukumäärällä ei ole ylärajaa?

...


{code
}
if ((a>=0 && a<=100) || (a>=200 && a<=300)) {
    printf("muuttuja a on lukualueella 0...100 tai 200...300");
} else {
    printf("muuttuja a ei ole lukualueella");
}
{code}