Instrucțiuni condiționale în C: If, Else, Nested If cu exemplu
⚡ Rezumat inteligent
Instrucțiunile condiționale în C controlează fluxul unui program prin execuția unor blocuri de cod numai atunci când o condiție testată se evaluează ca adevărată, permițând luarea deciziilor prin construcții ladder de tip if, if-else, nested și else-if.

Ce este o declarație condiționată în C?
Instrucțiunile condiționale în programarea C sunt utilizate pentru a lua decizii pe baza condițiilor. Instrucțiunile condiționale se execută secvențial atunci când nu există nicio condiție în jurul instrucțiunilor. Dacă se pune o anumită condiție pentru un bloc de instrucțiuni, fluxul de execuție se poate modifica în funcție de rezultatul evaluat de condiție. Acest proces se numește luare a deciziilor în C.
Spre deosebire de bucle în C care repetă cod, instrucțiunile condiționale aleg o singură cale.
În programarea „C” instrucțiunile condiționate sunt posibile cu ajutorul următoarelor două constructe:
- Dacă afirmație
- Instrucțiunea If-else
Se mai numește și ramificare, deoarece un program decide ce instrucțiune să execute pe baza rezultatului condiției evaluate.
Dacă afirmație
Este una dintre declarațiile condiționale puternice. Instrucțiunea If este responsabilă pentru modificarea fluxului de execuție a unui program. Instrucțiunea If este întotdeauna folosită cu o condiție. Condiția este evaluată mai întâi înainte de a executa orice instrucțiune în corpul lui If. Sintaxa pentru instrucțiunea if este următoarea:
if (condition)
instruction;
Condiția se evaluează ca fiind adevărată sau falsă. True este întotdeauna o valoare diferită de zero, iar false este o valoare care conține zero. Instrucțiunile pot fi o singură instrucțiune sau un bloc de cod închis de acolade { }.
Următorul program ilustrează utilizarea construcției if în programarea „C”:
#include<stdio.h> int main() { int num1=1; int num2=2; if(num1<num2) //test-condition { printf("num1 is smaller than num2"); } return 0; }
ieșire:
num1 is smaller than num2
Programul de mai sus ilustrează utilizarea construcției if pentru a verifica egalitatea a două numere.
- În programul de mai sus, am inițializat două variabile cu num1, num2 cu valoarea 1, respectiv 2.
- Apoi, am folosit if cu o expresie-test pentru a verifica care număr este cel mai mic și care număr este cel mai mare. Am folosit o expresie relațională în construcția if. Deoarece valoarea lui num1 este mai mică decât num2, condiția va fi evaluată ca adevărată.
- Astfel, va tipări declarația în interiorul blocului If. După aceea, controlul va ieși în afara blocului și programul va fi încheiat cu un rezultat de succes.
Relațional Operatori
C are șase operatori relaționali care pot fi utilizați pentru a formula o expresie booleană pentru luarea unei decizii și testarea condițiilor, care returnează adevărat sau fals:
<- mai puțin decât<=— mai mic sau egal cu>— mai mare decât>=— mai mare sau egal cu==— egal cu!=— nu este egal cu
Observați că testul egal (==) este diferit de operatorul de atribuire (=), deoarece este una dintre cele mai frecvente probleme cu care se confruntă un programator prin amestecarea acestora.
De exemplu:
int x = 41; x =x+ 1; if (x == 42) { printf("You succeed!");}
ieşire:
You succeed
Rețineți că o condiție care se evaluează la o valoare diferită de zero este considerată adevărată.
De exemplu:
int present = 1; if (present) printf("There is someone present in the classroom \n");
ieșire:
There is someone present in the classroom
Declarația If-Else
Instrucțiunea if-else este o versiune extinsă a instrucțiunii If. Forma generală a instrucțiunii if-else este următoarea:
if (test-expression)
{
True block of statements
}
Else
{
False block of statements
}
Statements;
În acest tip de construcție, dacă valoarea expresiei-test este adevărată, atunci blocul de instrucțiuni adevărat va fi executat. Dacă valoarea expresiei-test este falsă, atunci blocul de instrucțiuni false va fi executat. În orice caz, după execuție, controlul va fi transferat automat către instrucțiunile care apar în afara blocului If.
Următoarele programe ilustrează utilizarea constructului if-else:
Vom inițializa o variabilă cu o anumită valoare și vom scrie un program pentru a determina dacă valoarea este mai mică de zece sau mai mare de zece.
Să începem.
#include<stdio.h> int main() { int num=19; if(num<10) { printf("The value is less than 10"); } else { printf("The value is greater than 10"); } return 0; }
ieșire:
The value is greater than 10
- Am inițializat o variabilă cu valoarea 19. Trebuie să aflăm dacă numărul este mai mare sau mai mic decât 10 folosind un program „C”. Pentru a face acest lucru, am folosit constructul if-else.
- Aici am furnizat o condiție num<10 pentru că trebuie să comparăm valoarea noastră cu 10.
- După cum puteți vedea, primul bloc este întotdeauna un bloc adevărat, ceea ce înseamnă că dacă valoarea expresiei test este adevărată, atunci primul bloc care este If, va fi executat.
- Al doilea bloc este un bloc else. Acest bloc conține instrucțiunile care vor fi executate dacă valoarea expresiei-test devine falsă. În programul nostru, valoarea lui num este mai mare de zece, prin urmare condiția de testare devine falsă, iar blocul este executat. Astfel, ieșirea noastră va fi dintr-un bloc else care este „Valoarea este mai mare decât 10”. După if-else, programul se va încheia cu un rezultat de succes.
În programarea „C” putem folosi mai multe constructe if-else unele în altele, care sunt denumite imbricarea instrucțiunilor if-else.
Expresii condiționale
O altă modalitate de a exprima o instrucțiune if-else este prin introducerea operatorului ?:. Într-o expresie condițională, operatorul ?: are o singură instrucțiune asociată cu if-ul și else-ul.
De exemplu:
#include <stdio.h> int main() { int y; int x = 2; y = (x >= 6) ? 6 : x;/* This is equivalent to: if (x >= 5) y = 5; else y = x; */ printf("y =%d ",y); return 0;}
ieșire:
y =2
Instrucțiuni if-else imbricate
Când este necesară o serie de decizii, se folosește imbricat if-else. Imbricare înseamnă folosirea unui construct dacă-altfel în altul.
Să scriem un program pentru a ilustra utilizarea imbricată if-else.
#include<stdio.h> int main() { int num=1; if(num<10) { if(num==1) { printf("The value is:%d\n",num); } else { printf("The value is greater than 1"); } } else { printf("The value is greater than 10"); } return 0; }
ieșire:
The value is:1
Programul de mai sus verifică dacă un număr este mai mic sau mai mare decât 10 și tipărește rezultatul utilizând construcția imbricată if-else.
- În primul rând, am declarat o variabilă num cu valoarea 1. Apoi am folosit construcția if-else.
- În modul if-else extern, condiția furnizată verifică dacă un număr este mai mic decât 10. Dacă condiția este adevărată, atunci și numai atunci va executa blocul intern. În acest caz, condiția este adevărată, prin urmare, blocul intern este procesat.
- În blocul interior, avem din nou o condiție care verifică dacă variabila noastră conține valoarea 1 sau nu. Când o condiție este adevărată, atunci va procesa blocul If, altfel va procesa un bloc else. În acest caz, condiția este adevărată, prin urmare, blocul If este executat, iar valoarea este afișată pe ecranul de ieșire.
- Programul de mai sus va afișa valoarea unei variabile și se va închide cu succes.
Încercați să schimbați valoarea lui variabil vezi cum se comportă programul.
NOTĂ: În cazul construcțiilor if-else imbricate, trebuie să fim atenți la indentare, deoarece în acest proces sunt implicate mai multe construcții if-else, ceea ce face dificilă identificarea construcțiilor individuale. Indentarea corectă facilitează citirea programului.
Instrucțiuni imbricate Else-if
Imbricat else-if este utilizat atunci când sunt necesare decizii cu mai multe căi.
Sintaxa generală a modului în care sunt construite scări altfel-if în programarea „C” este următoarea:
if (test - expression 1) { statement1; } else if (test - expression 2) { Statement2; } else if (test - expression 3) { Statement3; } else if (test - expression n) { Statement n; } else { default; } Statement x;
Acest tip de structură este cunoscut sub numele de scară else-if. Acest lanț arată în general ca o scară, prin urmare, este numit și scară else-if. Expresiile de test sunt evaluate de sus în jos. Ori de câte ori se găsește o expresie de test adevărată, se execută instrucțiunea asociată acesteia. Când toate cele n expresii de test devin false, atunci se execută instrucțiunea else implicită.
Să vedem funcționarea reală cu ajutorul unui program.
#include<stdio.h> int main() { int marks=83; if(marks>75){ printf("First class"); } else if(marks>65){ printf("Second class"); } else if(marks>55){ printf("Third class"); } else{ printf("Fourth class"); } return 0; }
ieșire:
First class
Programul de mai sus tipărește nota în funcție de notele obținute la un test. Am folosit construcția scară else-if în programul de mai sus.
- Am inițializat o variabilă cu semne. În structura scării else-if, am oferit diverse condiții.
- Valoarea din marcajele variabilei va fi comparată cu prima condiție deoarece este adevărată afirmația asociată acesteia va fi tipărită pe ecranul de ieșire.
- Dacă prima condiție de testare se dovedește falsă, atunci este comparată cu a doua condiție.
- Acest proces va continua până când toate expresiile sunt evaluate, altfel controlul va ieși din scara else-if, iar instrucțiunea implicită va fi afișată.
Încercați să modificați valoarea și observați modificarea rezultatului.





