C


Instrukcje warunkowe i wielowarunkowe

Instrukcje warunkowe:

if: (instrukcja warunkowa)
budowa:

if (warunek){ //warunek
instr1; //instrukcja która wykona się jeśli warunek jest prawdziwy
}
else {
instr2; //instrukcja która wykona się jeśli warunek jest fałszywy
}

Należy pamiętać że w języku C nie ma typu logicznego 'bool'
warunki w C podlegają nastepującym prawom:
warunek==0 //jeśli warunek jest równy zero to fałsz
warunek!=0 //jeśli warunek jest różny od zera to prawda


sztuczka:

(1)

(2)

if(w!=0)

if(w)

if(w==0)

if(!w)

wartości w (1) jak i w (2) kolumnie są równoważne, można dzieki temu mocno skracać i komplikować kod

łaczenie warunków:
przykład:

if ((x>6)&&(y<9)) { //warunek łączony aby było to prawdą muszą być spełnione oby dwa warunki
instr;
}

|| - or (lub)
&& - and (i)
! - not (negacja)

Przykład do własnej analizy:

#include <stdlib.h>
#include <stdio.h>

int x,y;

int main(int argc, char *argv[])
    {
    printf("Podaj x=");
    scanf("%d",&x);
    printf("Podaj y=");
    scanf("%d",&y);

    printf("Podales nastepujace liczby x=%d, y=%d \n", x, y);
    if (x==y) puts("liczby sa rowne"); 
       else {
            if (x>y)
            printf("liczba x jest wieksza badz rowna y o %d", x-y);
            else printf("liczba y jest wieksza od x o %d", y-x);
            }
    return 0;
}

switch: (decyzja wielowarunkowa)

#include <stdlib.h>
#include <stdio.h>

int z;

int main(int argc, char *argv[])
    {
    z=getchar(); //wczytanie z klawiatury znaku i czekanie na potwierdzenie enterem
    switch(z) {

    case 'a':
    case 'A':
         puts("Wcisnoles A");
    break;

    case 'b':
    case 'B':
         puts ("Wcisnoles B");
    break;

    default:
         puts ("zly klawisz");
    return 0;
    }
}


www.piotrsog.prv.pl