You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

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.

  1. muuttuja a on nolla
    if (!a) printf("a on nolla");
    else    printf("a ei ole nolla");
    
  2. muuttuja a tai (OR) 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");
    }
    
  3. 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");
    }
    
  4. muuttuja a ja (AND) 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");
    }
    
  5. 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");
    

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

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");
}
  • No labels
You must log in to comment.