Loogiset operaattorit
C-kielessä ovat käytössä seuraavat loogiset operaattorit:
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.
- muuttuja
a
on nollaCode Block if (!a) printf("a on nolla"); else printf("a ei ole nolla");
- muuttuja
a
tai (OR) muuttujab
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"); }
- 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"); }
- muuttuja
a
ja (AND) muuttujab
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"); }
- 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");
Useampia ehtoja voidaan myös 'ketjuttaa' samaan if-ehtoon loogisten operaattoreiden avulla. Ehtojen lukumäärällä ei ole ylärajaa?
Code Block |
---|
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"); } |