previous next Up Title Contents Index

Esimerkki 2

Boolean-tyypin määrittely

C ei sisällä true/false-totuusarvotyyppiä, jollainen on yleisesti käytössä monissa ohjelmointikielissä.
enum-määrittely antaa mahdollisuuden määritellä totuusarvot FALSE ja TRUE.

Kun käytetään lisäksi hyväksi typedef-määrittelyä, saadaan helposti käyttöön oma boolean-tyyppi.

Esimerkki:

    #include <stdio.h>
    typedef enum {FALSE, TRUE} Boolean;
    void main (void)
    {
        int luku=0;
        Boolean ok=FALSE;
        char rivi[128];
        do{
            printf ("\nAnna luku 123: ");
            gets(rivi);
            sscanf (rivi,"%d",&luku);
            if (luku == 123)
            {
                ok = TRUE;
            }
        }while (!ok);
    }

Toistoehdossa olevan lausekkeen !ok arvona on TRUE eli tosi, jos ok:n arvona on FALSE, koska negaatio-operaatio (!) muuttaa toden epätodeksi ja päinvastoin. Silmukassa pysytään niin kauan kuin ok on FALSE. Kun ok saa arvon TRUE, toistoehto muuttuu epätodeksi ja silmukan suoritus päättyy. Ehto voitaisiin haluttaessa esittää myös muodossa:

   }while (ok==FALSE);

previous next Up Title Contents Index