logo

Presa de decisions en C (si , si... altrament, niat si, si-else-si )

El enunciats condicionals (també conegudes com a estructures de control de decisions) com si, en cas contrari, switch, etc. s'utilitzen per a la presa de decisions als programes C.

També es coneixen com a declaracions de presa de decisions i s'utilitzen per avaluar una o més condicions i prendre la decisió d'executar o no un conjunt d'enunciats. Aquestes declaracions de presa de decisions en llenguatges de programació decideixen la direcció del flux d'execució del programa.



Necessitat de declaracions condicionals

Hi ha situacions a la vida real en què hem de prendre algunes decisions i en funció d'aquestes decisions, decidim què hem de fer a continuació. En la programació també es donen situacions similars on hem de prendre algunes decisions i en funció d'aquestes decisions executarem el següent bloc de codi. Per exemple, a C si es produeix x, executeu y sinó executeu z. També pot haver-hi diverses condicions com en C, si es produeix x, executeu p, en cas contrari, si es produeix la condició y executeu q, en cas contrari executeu r. Aquesta condició de C else-if és una de les moltes maneres d'importar múltiples condicions.

Tipus d'enunciats condicionals en C

A continuació es mostren les declaracions de presa de decisions disponibles en C:

  1. si Declaració
  2. Declaració if-else
  3. Declaració if niada
  4. si-més-si Escala
  5. Declaració switch
  6. Operador condicional
  7. Declaracions de salt:
    • trencar
    • continuar
    • anar a
    • tornar

Comentem cadascun d'ells un per un.



1. si en C

El declaració si és la declaració de presa de decisions més senzilla. S'utilitza per decidir si s'executarà o no una determinada instrucció o bloc d'instruccions, és a dir, si una determinada condició és certa, s'executarà un bloc d'instruccions en cas contrari no.

com llegir un fitxer json

Sintaxi de la instrucció if

  if  (  condition  )  {    // Statements to execute if     // condition is true  }>

Aquí, el condició després de l'avaluació serà vertader o fals. C si la sentència accepta valors booleans: si el valor és cert, executarà el bloc de sentències que hi ha a sota, en cas contrari no. Si no proporcionem les claus '{' i '}' després de if(condició), aleshores, per defecte, la declaració if considerarà que la primera sentència immediatament a continuació es troba dins del seu bloc.

Diagrama de flux de la declaració if

si diagrama de flux

Diagrama de flux de la declaració if



Exemple de si a C

C




// C program to illustrate If statement> #include> > int> main()> {> >int> i = 10;> > >if> (i>15) {> >printf>(>'10 is greater than 15'>);> >}> > >printf>(>'I am Not in if'>);> }>

>

>

Sortida

I am Not in if>

Com que la condició present a la declaració if és falsa. Per tant, el bloc sota la instrucció if no s'executa.

2. if-else en C

El si Només la instrucció ens diu que si una condició és certa, executarà un bloc d'instruccions i si la condició és falsa no ho farà. Però, què passa si volem fer una altra cosa quan la condició és falsa? Aquí ve el C altra cosa declaració. Podem utilitzar el altra cosa declaració amb el si sentència per executar un bloc de codi quan la condició és falsa. El declaració if-else consta de dos blocs, un per a l'expressió falsa i un altre per a l'expressió vertadera.

Sintaxi de if else a C

  if   (  condition  ) {     // Executes this block if     // condition is true  }   else  {    // Executes this block if     // condition is false  }>

Diagrama de flux de la declaració if-else

si més, diagrama de flux

Diagrama de flux de if else

Exemple de if-else

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;> }>

>

>

Sortida

i is greater than 15>

El bloc de codi següent al altra cosa La instrucció s'executa com a condició present al fitxer si afirmació és falsa.

3. Imbricat if-else a C

Un if imbricat a C és una sentència if que és l'objectiu d'una altra sentència if. Les declaracions if niades signifiquen una declaració if dins d'una altra sentència if. Sí, C ens permet niar declaracions if dins de declaracions if, és a dir, podem col·locar una declaració if dins d'una altra instrucció if.

Sintaxi de Nested if-else

  if   (  condition1  )  {    // Executes when condition1 is true     if   (  condition2  )   {     // Executes when condition2 is true   }    else   {    // Executes when condition2 is false  }>

Diagrama de flux de nidat si-else

Diagrama de flux de nidificat if-else

Exemple d'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;> }>

>

>

Sortida

i is smaller than 15 i is smaller than 12 too>

4. if-else-if Escala en C

El si més si declaracions s'utilitzen quan l'usuari ha de decidir entre diverses opcions. Les sentències C if s'executen de dalt a baix. Tan bon punt una de les condicions que controlen el if és certa, s'executa la declaració associada amb el if i la resta de l'escala C else-if s'omet. Si cap de les condicions és certa, s'executarà la instrucció else final. if-else-if ladder és similar a la instrucció switch.

com inicialitzar una matriu en java

Sintaxi de if-else-if Ladder

  if   (  condition  )    statement;    else if   (  condition  )    statement;  . .   else     statement;>

Diagrama de flux de l'escala if-else-if

diagrama de flux de la instrucció if-else-if

Diagrama de flux de if-else-if

Exemple d'escala 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'>);> }>

>

>

Sortida

i is 20>

5. Declaració switch en C

El declaració de canvi de cas és una alternativa a l'escala if else if que es pot utilitzar per executar el codi condicional en funció del valor de la variable especificat a la instrucció switch. El bloc de commutació consta de casos que s'executaran en funció del valor de la variable de commutació.

Sintaxi de switch

  switch   (  expression  ) {    case     value1:     statements;     case    value2:     statements;   ....  ....  ....    default:     statements;  }>

Nota: L'expressió switch s'ha d'avaluar com a nombre enter o caràcter. No pot avaluar cap altre tipus de dades.

Diagrama de flux de l'interruptor

diagrama de flux de la declaració de canvi

Diagrama de flux de l'interruptor en C

Exemple de declaració 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;> }>

>

>

Sortida

Case 2 is executed>

6. Operador condicional en C

El operador condicional s'utilitza per afegir codi condicional al nostre programa. És similar a la declaració if-else. També es coneix com a operador ternari, ja que funciona en tres operands.

Sintaxi de l'operador condicional

(  condition  )   ?     [true_statements]     :     [false_statements]  ;>

Diagrama de flux de l'operador condicional

Diagrama de flux d'operadors condicionals

Diagrama de flux de l'operador condicional

Exemple d'operador condicional

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;> }>

>

>

Sortida

Value of var when flag is 0: 25 Value of var when flag is NOT 0: -25>

7. Declaracions de salt en C

Aquestes declaracions s'utilitzen en C per al flux incondicional de control a través de les funcions d'un programa. Admeten quatre tipus de declaracions de salt:

A) trencar

Aquesta instrucció de control de bucle s'utilitza per finalitzar el bucle. Tan aviat com el trencar La instrucció es troba dins d'un bucle, les iteracions del bucle s'aturen allà i el control torna del bucle immediatament a la primera instrucció després del bucle.

Sintaxi de break

break;>

Bàsicament, les declaracions break s'utilitzen en situacions en què no estem segurs del nombre real d'iteracions del bucle o volem finalitzar el bucle en funció d'alguna condició.

trencar el diagrama de flux

Exemple de descans

C




// 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; }>

>

>

Sortida

Element found at position: 3>

B) continuar

Aquesta instrucció de control de bucle és com la instrucció break. El continuar declaració és oposada a la del trencament declaració , en lloc d'acabar el bucle, obliga a executar la següent iteració del bucle.
Com el seu nom indica, la instrucció continue obliga el bucle a continuar o executar la següent iteració. Quan la instrucció continue s'executa al bucle, el codi dins del bucle després de la instrucció continue es saltarà i començarà la següent iteració del bucle.

Sintaxi de continuar

continue;>

Diagrama de flux de Continuar

Diagrama de flux de C continue Declaració

Exemple de continuar

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;> }>

>

>

Sortida

canviar el nom del directori a linux
1 2 3 4 5 7 8 9 10>

Si creeu una variable a if-else a C, només serà local a aquest bloc if/else. Podeu utilitzar variables globals dins del bloc if/else. Si el nom de la variable que heu creat a if/else és el mateix que qualsevol variable global, es donarà prioritat a la 'variable local'.

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;> }>

char tostring java

>

>

Sortida

Before if-else block 0 if block 100 After if block 0>

C) anar a

El anar a declaració en C també es coneix com la instrucció de salt incondicional es pot utilitzar per saltar d'un punt a un altre dins d'una funció.

Sintaxi de goto

  Syntax1 | Syntax2  ----------------------------   goto     label;   |   label:   . | . . | . . | .   label:   |   goto     label;>

A la sintaxi anterior, la primera línia indica al compilador que vagi o que salti a la instrucció marcada com a etiqueta. Aquí, una etiqueta és un identificador definit per l'usuari que indica la declaració de destinació. La declaració seguida immediatament després de 'etiqueta:' és la declaració de destinació. L''etiqueta:' també pot aparèixer abans de la declaració 'goto label;' a la sintaxi anterior.

Diagrama de flux de la declaració goto

Exemples de goto

C




// 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;> }>

>

>

Sortida

1 2 3 4 5 6 7 8 9 10>

D) tornar

El tornar en C retorna el flux de l'execució a la funció des d'on es crida. Aquesta declaració no necessita obligatòriament cap declaració condicional. Tan bon punt s'executa la instrucció, el flux del programa s'atura immediatament i retorna el control des d'on es va cridar. La instrucció return pot o no retornar res per a una funció void, però per a una funció no void, s'ha de retornar un valor de retorn.

Diagrama de flux de retorn

diagrama de flux de retorn

Diagrama de flux de retorn

Sintaxi de retorn

  return    [expression]  ;>

Exemple de retorn

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;> }>

>

>

Sortida

The sum is 20>