Pe lângă If, C# oferă instrucțiunea condițională If-Else. Când am explicat declarația If, am spus că programul va executa instrucțiunile numai în cazul în care condiția If este adevărată. Dar dacă am dori ca programul să execute o instrucțiune total diferită atunci când și doar când această condiție este falsă?
Este adevărat, am putea scrie o altă declarație If, verificând dacă respectiva condiție returnează Fals și punând codul acolo, dar această metodă n-ar fi foarte elegantă. In schimb, putem folosi instrucțiunea condițională if-else:
1 2 3 4 5 6 7 8 |
int varsta = 18; if (varsta >= 18) Console.WriteLine("Sunt adult"); else Console.WriteLine("Sunt încă minor"); Console.Read(); |
În exemplul de mai sus, programul declară o variabilă de tip int, pe care o inițializăm cu valoarea 18. După aceea, verificăm dacă vârsta este mai mare sau egală cu 18, și afișăm un text în cazul în care condiția returnează adevărat. Dacă returnează fals, vom executa o instrucțiune total diferită, afișând un text diferit.
Desigur, ceea ce am spus despre declarația condițională If, se aplică și în cazul If-Else: atunci când aveți mai mult de o singură instrucțiune după verificarea condițională, fie că este vorba de If sau Else, plasați instrucțiunile într-un bloc de cod delimitat de acolade:
1 2 3 4 5 6 7 8 9 10 11 |
int age = 18; if (age >= 18) Console.WriteLine("Sunt adult"); else { Console.WriteLine("Sunt încă minor"); Console.WriteLine("Sunt adolescent"); } Console.Read(); |
Ultima formă a declarației If este If-Else If-Else. Putem folosi aceasta pentru a efectua două sau mai multe controale condiționale, cu o acțiune implicită în cazul în care niciunul dintre controale nu returnează Adevărat. Următorul exemplu ilustrează acest caz:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
string ziuaSaptamanii = "Luni"; if (ziuaSaptamanii == "Luni") Console.WriteLine("Astazi este Luni."); else if (ziuaSaptamanii == "Marti") Console.WriteLine("Astazi este Marti"); else if (ziuaSaptamanii == "Miercuri") Console.WriteLine("Astazi este Miercuri"); else if (ziuaSaptamanii == "Joi") Console.WriteLine("Astazi este Joi"); else if (ziuaSaptamanii == "Vineri") { Console.WriteLine("Astazi este Vineri"); Console.WriteLine("Weekend-ul începe!"); } else { Console.WriteLine("Weekend-ul a început!"); Console.WriteLine("Astăzi nu mergem la muncă."); } Console.Read(); |
Din exemplul de mai sus, se poate vedea că am verificat variabila noastră string față de toate zilele săptămânii lucrătoare, afișând diverse texte pentru fiecare scenariu, și un text implicit în cazul în care nici una dintre condiții nu returnează true.
Conceptele explicate în această lecție sunt prezentate și vizual, ca parte a următorului videoclip:
EXERCIȚII
1. Scrieți un program care afișează semnul (+ sau -) produsului a trei numerel reale, fără a îl calcula. Folosiți o secvență de operatori if.
Soluție
Instrucțiuni: Un multiplu de numere non-zero are un produs pozitiv, dacă multiplii negativi sunt număr par. Dacă numărul numerelor negative este impar, produsul este negativ. Dacă cel puțin unul din numere este 0, produsul este zero. Folosiți o variabilă contor numită numarNumereNegative pentru a păstra numărul de numere negative Verificați fiecare număr dacă este negativ și modificați valoarea variabilei contor în mod corespunzător. Dacă unul din numere este 0, afișați “0” ca rezultat (zero nu are semn). Altfel, afișați “+” sau “-” în funcție de condiția (numarNumereNegative % 2 == 0).
Tags: if, if else, if else if else, procesare conditională