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