CATEGORII DOCUMENTE |
DOCUMENTE SIMILARE |
|
TERMENI importanti pentru acest document |
|
If-Else
Instructiunea If-Else este folosita pentru luarea de
decizii. Formal, sintaxa ei este:
if(expresie)
instructiune-1
else
instructiune-2
unde partea 'else' este optionala. 'Expresia' este evalua-
ta; daca este 'adevarata' (adica, are o valoare nenula),
'instructiune-1' este executata. Daca ea este 'falsa' ('expresia'
este zero) si daca exista partea cu 'else', se executa in schimb
'instructiune-2'.
Deoarece un 'if' testeaza pur si simplu valoarea numerica a
unei expresii, sint posibile anumite prescurtari de cod. Cel mai
clar exemplu este scriind
if(expresie)
in loc de
if(expresie !=
Citeodata, acest lucru este natural si clar. Altadata poate parea
cifrat.
Deoarece partea cu 'else' a unui if-else este optionala, se
poate ajunge la o ambiguitate cind se omite un else dintr-o secve-
nta imbricata de if-uri. Aceasta este rezolvata, ca de obicei,
asa: else este asociat cu if-ul anterior cel mai apropiat, care
nu face pereche cu un 'if'. De exemplu, in:
if (n > 0)
if (a > b)
z = a;
else
z = b;
else face pereche cu if cel mai dinauntru, asa cum am aratat
prin tabulare. Daca nu dorim aceasta, trebuie sa folosim
acolade pentru a forta asocierea potrivita:
if (n > 0)
else
z = b;
Ambiguitatea este vatamatoare indeosebi in situatii ca urmatoarea:
if (n > 0)
for (i = 0; i < n; i++)
if (s[i] > 0)
else /* WRONG */
printf('error- n is zero n');
Tabularea arata neechivoc ceea ce dorim, dar compilatorul nu
intelege acest mesaj, si-l asociaza pe else cu if-ul cel mai
dinauntru. Acest tip de eroare poate fi foarte greu de gasit.
Apropo, sa notam ca exista un punct si virgula dupa z = a in:
if (a > b)
z = a;
else
z = b;
Aceasta deoarece, gramatical, dupa if urmeaza o instructiune si o
instructiune de asignare de tipul z = a se termina intodeauna cu
punct si virgula.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 978
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved