Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Expresii conditionale

c


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.




Document Info


Accesari: 1895
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )