Ja to totiž vôbec nechápem z tohto :
Kód: Vybrať všetko
Logické výrazy, typ bool
Podmienky v príkaze if ale aj v príkazoch cyklu for a while sú logické výrazy. Logické výrazy nadobúdajú hodnoty typu bool a to:
* buď hodnotu false (logická nepravda),
* alebo hodnotu true (logická pravda).
Príklad použitia premennej typu bool:
bool test;
test=1<2;
if (test) Image1->Canvas->TextOut(0, 0, "Premenná test má hodnotu true");
else Image1->Canvas->TextOut(0, 0, "Premenná test má hodnotu false");
Logické výrazy môžeme v C++ vytvárať:
* porovnaním dvoch hodnôt - už poznáme operátory: ==, !=, <, >, <=, >=,
* použitím operátorov logická negácia alebo pomocou logických spojok:
zápis v C++: matematický význam: príklad: výsledok:
!V logická negácia výrazu V !(5==5) false
X && Y logické a: X a Y (1==2) && (0==0) false
X || Y logické alebo: X alebo Y (1==2) || (0==0) true
Ak výraz obsahuje viacero operátorov, pri vyhodnotení sa uplatňuje priorita operátorov. Tá určuje, v akom poradí sa jednotlivé časti výrazu vyhodnotia - operátor s najvyššou prioritou sa vyhodnotí najskôr. Priority známych operátorov:
priorita: operátor: význam:
najvyššia ( ) zátvorky
! + - ++ -- negácia, unárne + a unárne -,
operátory inkrementácie a dekrementácie
* / násobenie, delenie
+ - binárne + a binárne -
< <= > >= porovnanie
== != test na rovnosť
&& logické AND
najnižšia || logické OR
Priority ďalších operátorov sa dajú nájsť v pomocníkovi (Help). Na sprehľadnenie komplikovaných výrazov sa odporúča používať zátvorky aj vtedy, keď nie sú nevyhnutne potrebné.
Príklad vyhodnotenia logického výrazu:
výraz: !(5>5) && 2+3==5 || 6!=6
vyhodnocujeme: !false && 2+3==5 || 6!=6
true && 2+3==5 || 6!=6
true && 5==5 || 6!=6
true && true || false
true || false
výsledok: true