The declarații condiționale (cunoscute și sub denumirea de structuri de control al deciziei), cum ar fi dacă, dacă altfel, comutatorul etc. sunt folosite în scopuri de luare a deciziilor în programele C.
Ele sunt cunoscute și sub denumirea de declarații de luare a deciziilor și sunt folosite pentru a evalua una sau mai multe condiții și pentru a lua decizia dacă să execute sau nu un set de declarații. Aceste declarații de luare a deciziilor în limbaje de programare decid direcția fluxului de execuție a programului.
Nevoia de declarații condiționale
Vin situații în viața reală când trebuie să luăm anumite decizii și pe baza acestor decizii, decidem ce ar trebui să facem în continuare. Situații similare apar și în programare în care trebuie să luăm unele decizii și pe baza acestor decizii vom executa următorul bloc de cod. De exemplu, în C dacă apare x, atunci executați y altfel executați z. Pot exista, de asemenea, mai multe condiții ca în C, dacă apare x, atunci executați p, altfel dacă apare condiția y executați q, altfel executați r. Această condiție a lui C else-if este una dintre multele modalități de a importa mai multe condiții.
Tipuri de instrucțiuni condiționate în C
Următoarele sunt declarațiile de luare a deciziilor disponibile în C:
- if Statement
- Declarație if-else
- Imbricat if Declarație
- dacă-altfel-dacă Scară
- Declarație switch
- Operator condiționat
- Declarații de salt:
- pauză
- continua
- mergi la
- întoarcere
Să discutăm pe fiecare dintre ele unul câte unul.
1. dacă în C
The declarația dacă este cea mai simplă declarație de luare a deciziilor. Este folosit pentru a decide dacă o anumită instrucțiune sau bloc de instrucțiuni va fi executată sau nu, adică dacă o anumită condiție este adevărată, atunci un bloc de instrucțiuni este executat, altfel nu.
Sintaxa lui if
if ( condition ) { // Statements to execute if // condition is true }> Aici condiție după evaluare va fi fie adevărat, fie fals. C if instrucțiunea acceptă valori booleene – dacă valoarea este adevărată, atunci va executa blocul de instrucțiuni de mai jos, altfel nu. Dacă nu furnizăm acoladele „{‘ și „}” după if(condiție), atunci implicit instrucțiunea if va considera prima instrucțiune imediat dedesubt ca fiind în blocul său.
Diagramă a instrucțiunii if

Diagrama de flux a instrucțiunii if
Exemplu dacă în C
C
// C program to illustrate If statement> #include> > int> main()> {> >int> i = 10;> > >if> (i>15) {>>> (>'10 is greater than 15'>);> >}> > >printf>(>'I am Not in if'>);> }> |
Java compara șiruri
>
>Ieșire
I am Not in if>
Deoarece condiția prezentă în declarația if este falsă. Deci, blocul de sub instrucțiunea if nu este executat.
2. dacă-altfel în C
The dacă Numai declarația ne spune că, dacă o condiție este adevărată, va executa un bloc de instrucțiuni, iar dacă condiția este falsă, nu va executa. Dar dacă vrem să facem altceva când condiția este falsă? Aici vine C altfel afirmație. Putem folosi altfel declarație cu dacă instrucțiune pentru a executa un bloc de cod atunci când condiția este falsă. The declarație dacă-altfel constă din două blocuri, unul pentru expresia falsă și unul pentru expresia adevărată.
Sintaxa lui if else în C
if ( condition ) { // Executes this block if // condition is true } else { // Executes this block if // condition is false }> Diagrama de flux a instrucțiunii if-else

Diagrama fluxului dacă altfel
Exemplu de dacă-altfel
C
// C program to illustrate If statement> #include> > int> main()> {> >int> i = 20;> > >if> (i <15) {> > >printf>(>'i is smaller than 15'>);> >}> >else> {> > >printf>(>'i is greater than 15'>);> >}> >return> 0;> }> |
>
>Ieșire
i is greater than 15>
Blocul de cod care urmează altfel instrucțiunea este executată ca condiție prezentă în dacă afirmația este falsă.
3. Imbricat if-else în C
Un if imbricat în C este o instrucțiune if care este ținta unei alte instrucțiuni if. Instrucțiuni if imbricate înseamnă o declarație if în interiorul unei alte instrucțiuni if. Da, C ne permite să imbricam instrucțiuni if în instrucțiuni if, adică putem plasa o instrucțiune if în interiorul unei alte instrucțiuni if.
Sintaxa lui Nested if-else
if ( condition1 ) { // Executes when condition1 is true if ( condition2 ) { // Executes when condition2 is true } else { // Executes when condition2 is false }> Diagramă de Imbricat dacă-altfel
Diagrama fluxului imbricat if-else
Exemplu de Imbricat if-else
C
// C program to illustrate nested-if statement> #include> > int> main()> {> >int> i = 10;> > >if> (i == 10) {> >// First if statement> >if> (i <15)> >printf>(>'i is smaller than 15
'>);> > >// Nested - if statement> >// Will only be executed if statement above> >// is true> >if> (i <12)> >printf>(>'i is smaller than 12 too
'>);> >else> >printf>(>'i is greater than 15'>);> >}> > >return> 0;> }> |
>
ce este jquery
>Ieșire
i is smaller than 15 i is smaller than 12 too>
4. dacă-altfel-dacă Scara în C
The if else if declarații sunt utilizate atunci când utilizatorul trebuie să decidă între mai multe opțiuni. Instrucțiunile C if sunt executate de sus în jos. De îndată ce una dintre condițiile care controlează dacă este adevărată, declarația asociată cu acel if este executată, iar restul scarii C else-if este ocolită. Dacă niciuna dintre condiții nu este adevărată, atunci instrucția finală else va fi executată. scara if-else-if este similară cu instrucțiunea switch.
Sintaxa lui if-else-if Ladder
if ( condition ) statement; else if ( condition ) statement; . . else statement;>
Organigrama scării dacă-altfel-dacă

Diagrama fluxului dacă-altfel-dacă
Exemplu de scară if-else-if
C
// C program to illustrate nested-if statement> #include> > int> main()> {> >int> i = 20;> > >if> (i == 10)> >printf>(>'i is 10'>);> >else> if> (i == 15)> >printf>(>'i is 15'>);> >else> if> (i == 20)> >printf>(>'i is 20'>);> >else> >printf>(>'i is not present'>);> }> |
>
>Ieșire
i is 20>
5. Declarația switch în C
The declarație switch case este o alternativă la scara if else if care poate fi utilizată pentru a executa codul condiționat pe baza valorii variabilei specificate în instrucțiunea switch. Blocul de comutare constă din cazuri care urmează să fie executate pe baza valorii variabilei de comutare.
Sintaxa comutatorului
switch ( expression ) { case value1: statements; case value2: statements; .... .... .... default: statements; }> Notă: Expresia de comutare ar trebui să fie evaluată fie la un întreg, fie la un caracter. Nu poate evalua niciun alt tip de date.
Organigrama comutatorului

Organigrama comutatorului în C
Exemplu de declarație switch
C
// C Program to illustrate the use of switch statement> #include> > int> main()> {> >// variable to be used in switch statement> >int> var = 2;> > >// declaring switch cases> >switch> (var) {> >case> 1:> >printf>(>'Case 1 is executed'>);> >break>;> >case> 2:> >printf>(>'Case 2 is executed'>);> >break>;> >default>:> >printf>(>'Default Case is executed'>);> >break>;> >}> > >return> 0;> }> |
>
>Ieșire
Case 2 is executed>
6. Operator condiționat în C
The operator condițional este folosit pentru a adăuga cod condiționat în programul nostru. Este similar cu afirmația if-else. Este cunoscut și sub numele de operator ternar deoarece funcționează pe trei operanzi.
Sintaxa operatorului condițional
( condition ) ? [true_statements] : [false_statements] ;>
Diagrama de flux a operatorului condiționat

Diagrama de flux a operatorului condiționat
Exemplu de operator condiționat
C
// C Program to illustrate the use of conditional operator> #include> > // driver code> int> main()> {> > >int> var;> >int> flag = 0;> > >// using conditional operator to assign the value to var> >// according to the value of flag> >var = flag == 0 ? 25 : -25;> >printf>(>'Value of var when flag is 0: %d
'>, var);> > >// changing the value of flag> >flag = 1;> >// again assigning the value to var using same statement> >var = flag == 0 ? 25 : -25;> >printf>(>'Value of var when flag is NOT 0: %d'>, var);> > >return> 0;> }> |
>
hiba bukhari
>Ieșire
Value of var when flag is 0: 25 Value of var when flag is NOT 0: -25>
7. Declarații de salt în C
Aceste instrucțiuni sunt folosite în C pentru fluxul necondiționat de control în toate funcțiile dintr-un program. Aceștia acceptă patru tipuri de declarații de salt:
A) pauză
Această instrucțiune de control al buclei este folosită pentru a termina bucla. De îndată ce pauză instrucțiunea este întâlnită din interiorul unei bucle, iterațiile buclei se opresc acolo și controlul revine din buclă imediat la prima instrucțiune după buclă.
Sintaxa pauzei
break;>
Practic, instrucțiunile break sunt folosite în situații în care nu suntem siguri de numărul real de iterații pentru buclă sau dorim să încheiem bucla pe baza unei anumite condiții.
Exemplu de pauză
C
hashing în structura datelor
// C program to illustrate> // to show usage of break> // statement> #include> > void> findElement(>int> arr[],>int> size,>int> key)> {> >// loop to traverse array and search for key> >for> (>int> i = 0; i if (arr[i] == key) { printf('Element found at position: %d', (i + 1)); break; } } } int main() { int arr[] = { 1, 2, 3, 4, 5, 6 }; // no of elements int n = 6; // key to be searched int key = 3; // Calling function to find the key findElement(arr, n, key); return 0; }> |
>
>Ieșire
Element found at position: 3>
B) continua
Această instrucțiune de control al buclei este la fel ca instrucțiunea break. The continua afirmație este opus celui al pauzei afirmație , în loc să încheie bucla, forțează să execute următoarea iterație a buclei.
După cum sugerează și numele, instrucțiunea continue forțează bucla să continue sau să execute următoarea iterație. Când instrucțiunea continue este executată în buclă, codul din interiorul buclei care urmează instrucțiunii continue va fi omis și următoarea iterație a buclei va începe.
Sintaxa lui continue
continue;>
Organigrama Continuare
Diagrama de flux a instrucțiunii C continue
Exemplu de continuare
C
// C program to explain the use> // of continue statement> #include> > int> main()> {> >// loop from 1 to 10> >for> (>int> i = 1; i <= 10; i++) {> > >// If i is equals to 6,> >// continue to next iteration> >// without printing> >if> (i == 6)> >continue>;> > >else> >// otherwise print the value of i> >printf>(>'%d '>, i);> >}> > >return> 0;> }> |
>
>Ieșire
1 2 3 4 5 7 8 9 10>
Dacă creați o variabilă în if-else în C, aceasta va fi locală numai pentru acel bloc if/else. Puteți utiliza variabile globale în blocul if/else. Dacă numele variabilei pe care ați creat-o în if/else este același cu orice variabilă globală, atunci prioritate va fi dată „variabilei locale”.
C
#include> > int> main()> {> > >int> gfg = 0;>// local variable for main> >printf>(>'Before if-else block %d
'>, gfg);> >if> (1) {> >int> gfg = 100;>// new local variable of if block> >printf>(>'if block %d
'>, gfg);> >}> >printf>(>'After if block %d'>, gfg);> >return> 0;> }> |
>
>Ieșire
Before if-else block 0 if block 100 After if block 0>
C) mergi la
The Goto declarație în C, denumită și declarația de salt necondiționat, poate fi folosită pentru a sări de la un punct la altul în cadrul unei funcții.
Sintaxa lui goto
Syntax1 | Syntax2 ---------------------------- goto label; | label: . | . . | . . | . label: | goto label;>
În sintaxa de mai sus, prima linie îi spune compilatorului să meargă la instrucțiunea marcată ca etichetă sau să sară la etichetă. Aici, o etichetă este un identificator definit de utilizator care indică declarația țintă. Declarația imediat urmată după „etichetă:” este instrucțiunea de destinație. „Eticheta:” poate apărea și înaintea instrucțiunii „goto label;” în sintaxa de mai sus.
Organigrama Goto Statement
Exemple de goto
C
cum se concatenează șiruri în java
// C program to print numbers> // from 1 to 10 using goto> // statement> #include> > // function to print numbers from 1 to 10> void> printNumbers()> {> >int> n = 1;> label:> >printf>(>'%d '>, n);> >n++;> >if> (n <= 10)> >goto> label;> }> > // Driver program to test above function> int> main()> {> >printNumbers();> >return> 0;> }> |
>
>Ieșire
1 2 3 4 5 6 7 8 9 10>
D) întoarcere
The întoarcere în C returnează fluxul execuției către funcția de unde este apelată. Această declarație nu necesită în mod obligatoriu nicio declarație condiționată. De îndată ce instrucțiunea este executată, fluxul programului se oprește imediat și returnează controlul de unde a fost apelat. Declarația return poate returna ceva sau nu pentru o funcție void, dar pentru o funcție non-void, trebuie returnată o valoare returnată.
Diagramă de retur

Diagrama fluxului de retur
Sintaxa returnării
return [expression] ;>
Exemplu de retur
C
// C code to illustrate return> // statement> #include> > // non-void return type> // function to calculate sum> int> SUM(>int> a,>int> b)> {> >int> s1 = a + b;> >return> s1;> }> > // returns void> // function to print> void> Print(>int> s2)> {> >printf>(>'The sum is %d'>, s2);> >return>;> }> > int> main()> {> >int> num1 = 10;> >int> num2 = 10;> >int> sum_of = SUM(num1, num2);> >Print(sum_of);> >return> 0;> }> |
>
>Ieșire
The sum is 20>