Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Expresii conditionale

c



+ Font mai mare | - Font mai mic



Expresii conditionale

Instructiunile

if (a < b)

z = a;

else



z = b;

calculeaza desigur in z maximul dintre a si b. Expresia conditio-

nala, scrisa cu operatorul ternar '? :' ofera un mod alternativ

pentru a scrie acest lucru precum si constructii similare. In

expresia:

e1 ? e2 : e3

expresia e1 se evalueaza prima. Daca ea este nonzero (adevara-

ta) atunci se evalueaza expresia e2 si aceasta este valoarea

expresiei conditionale. Altminteri, se evalueaza e3 si aceasta

este valoarea. Numai una din expresiile e2 si e3 se evalueaza.

Deci, pentru a pune in z maximul dintre a si b:

z = (a > b) ? a : b; /* z = max(a, b) */

Trebuie sa notam ca expresia conditionala este intr-adevar o

expresie si ca ea poate fi folosita exact ca oricare alta expre-

sie. Daca e2 si e3 sint expresii de tipuri diferite, tipul

reultatului se determina dupa regulile de conversie discutate mai

inainte in acest capitol. De exemplu, daca f este un float si n

este un int, atunci expresia

(n > 0) ? f : n

este de tipul double, indiferent daca n este pozitiv sau nu.

Parantezele nu sint necesare in jurul primei expresii

a unei expresii conditionale, deoarece ponderea lui ? : este

foarte mica, chiar deasupra asignarii. Ele sint totusi recoman-

date, pentru a face partea de conditie a expresiei mai usor de

vazut.

Expresiile conditionale conduc adesea la un cod succint.

De exemplu, bucla urmatoare tipareste N elemente ale unui tablou,

10 pe linie, cu fiecare coloana separata printr-un blanc si cu

fiecare linie (inclusiv ultima) terminata cu un singur caracter

'linie noua'.

for (i = 0; i << N; i++)

printf('%6d%c', a[i], (i % 10 == 9 || i == N-1) ? 'n' : ' ');

Un caracter 'linie noua' se tipareste tot dupa al zecelea

element si dupa al N-lea element. Toate celelalte elemente sint

urmate de un blanc. Cu toate ca seamana cu un truc, este instruc-

tiv sa incercati sa scrieti lucrul acesta fara a folosi expresia

conditionala.

Exercitiul 2.10. Rescrieti functia lower, care converteste

literele mari in litere mici, cu o expresie conditionala in

locul lui if-else.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 918
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved