logo

Rozhodování v C (if , if..else, Nested if, if-else-if )

The podmíněné příkazy (také známé jako rozhodovací řídící struktury), jako pokud, pokud jinak, přepínač atd. jsou používány pro účely rozhodování v programech C.

Jsou také známé jako Rozhodovací příkazy a používají se k vyhodnocení jedné nebo více podmínek a k rozhodnutí, zda provést sadu příkazů nebo ne. Tyto rozhodovací příkazy v programovacích jazycích rozhodují o směru toku provádění programu.



Potřeba podmíněných příkazů

V reálném životě přicházejí situace, kdy potřebujeme udělat nějaká rozhodnutí a na základě těchto rozhodnutí se rozhodneme, co bychom měli dělat dál. Podobné situace nastávají i v programování, kdy potřebujeme udělat nějaká rozhodnutí a na základě těchto rozhodnutí provedeme další blok kódu. Například v C, pokud nastane x, proveďte y, jinak proveďte z. Může také existovat více podmínek jako v C, pokud nastane x, pak spusťte p, jinak pokud nastane podmínka y, spusťte q, jinak spusťte r. Tato podmínka C else-if je jedním z mnoha způsobů importu více podmínek.

Typy podmíněných příkazů v C

Níže jsou uvedena rozhodovací prohlášení dostupná v C:

  1. if Prohlášení
  2. if-else prohlášení
  3. Vnořený příkaz if
  4. if-else-if Žebřík
  5. příkaz switch
  6. Podmíněný operátor
  7. Skokové příkazy:
    • přestávka
    • pokračovat
    • jít do
    • vrátit se

Pojďme diskutovat o každém z nich jeden po druhém.



1. pokud v C

The if prohlášení je nejjednodušší rozhodnutí při rozhodování. Používá se k rozhodnutí, zda bude určitý příkaz nebo blok příkazů proveden nebo ne, tj. pokud je určitá podmínka splněna, pak se blok příkazů provede jinak ne.

Syntaxe příkazu if

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

Tady, stav po vyhodnocení bude buď pravda, nebo nepravda. Příkaz C if přijímá booleovské hodnoty – pokud je hodnota pravdivá, provede blok příkazů pod ní, jinak ne. Pokud za if(podmínka) neposkytneme složené závorky „{“ a „}“, pak bude příkaz if ve výchozím nastavení považovat první níže uvedený příkaz za uvnitř svého bloku.

Vývojový diagram příkazu if

pokud vývojový diagram

Vývojový diagram příkazu if



Příklad if v 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'>);> }>

>

>

Výstup

I am Not in if>

Protože podmínka přítomná v příkazu if je nepravdivá. Blok pod příkazem if se tedy neprovede.

2. pokud-jinak v C

The -li samotný příkaz nám říká, že pokud je podmínka pravdivá, provede blok příkazů a pokud je podmínka nepravdivá, nebude. Ale co když chceme udělat něco jiného, ​​když je podmínka nepravdivá? Zde přichází C jiný prohlášení. Můžeme použít jiný prohlášení s -li příkaz k provedení bloku kódu, když je podmínka nepravdivá. The if- else prohlášení sestává ze dvou bloků, jeden pro nepravdivé vyjádření a jeden pro pravdivý výraz.

Syntaxe if else v C

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

Vývojový diagram příkazu if-else

jinak vývojový diagram

Vývojový diagram, pokud jinak

Příklad 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;> }>

>

>

čtení souboru csv v jazyce Java
Výstup

i is greater than 15>

Blok kódu následující za jiný příkaz se provede jako podmínka přítomná v -li prohlášení je nepravdivé.

3. Vnořeno if-else v C

Vnořený if v C je příkaz if, který je cílem jiného příkazu if. Vnořené příkazy if znamenají příkaz if uvnitř jiného příkazu if. Ano, C nám umožňuje vnořit příkazy if do příkazů if, tj. můžeme umístit příkaz if do jiného příkazu if.

Syntaxe Nested if-else

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

Vývojový diagram z Nested if-else

Vývojový diagram Nested if-else

Příklad Nested 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;> }>

>

>

Výstup

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

4. if-else-if Žebřík v C

The když jinak, když prohlášení se používají, když se uživatel musí rozhodnout mezi více možnostmi. Příkazy C if se provádějí shora dolů. Jakmile je jedna z podmínek řídících if pravdivá, provede se příkaz spojený s tím if a zbytek žebříčku C else-if je vynechán. Pokud není splněna žádná z podmínek, provede se poslední příkaz else. žebříček if-else-if je podobný příkazu switch.

Syntaxe žebříku if-else-if

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

Vývojový diagram žebříku if-else-if

vývojový diagram příkazu if-else-if

Diagram toku if-else-if

Příklad žebříku 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'>);> }>

>

>

Výstup

i is 20>

5. příkaz switch v C

The příkaz switch case je alternativou k žebříčku if else if, který lze použít ke spuštění podmíněného kódu na základě hodnoty proměnné zadané v příkazu switch. Blok přepínače se skládá z případů, které mají být provedeny na základě hodnoty proměnné přepínače.

Syntaxe přepínače

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

Poznámka: Výraz přepínače by měl být vyhodnocen jako celé číslo nebo znak. Nemůže vyhodnotit žádný jiný datový typ.

Vývojový diagram přepínače

vývojový diagram přepínače

Vývojový diagram přepínače v C

Příklad příkazu 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;> }>

>

>

Výstup

Case 2 is executed>

6. Podmíněný operátor v C

The podmíněný operátor se používá k přidání podmíněného kódu v našem programu. Je to podobné jako u příkazu if-else. Je také známý jako ternární operátor, protože funguje na třech operandech.

Syntaxe podmíněného operátoru

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

Vývojový diagram podmíněného operátoru

vývojový diagram podmíněných operátorů

Vývojový diagram podmíněného operátoru

Příklad podmíněného operátoru

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

>

>

java len pole
Výstup

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

7. Skokové příkazy v C

Tyto příkazy se používají v C pro bezpodmínečný tok řízení napříč funkcemi v programu. Podporují čtyři typy příkazů skoku:

A) přestávka

Tento příkaz pro řízení smyčky se používá k ukončení smyčky. Jakmile bude přestávka Pokud je příkaz nalezen ze smyčky, iterace smyčky se tam zastaví a řízení se ze smyčky okamžitě vrátí k prvnímu příkazu za smyčkou.

Syntaxe přerušení

break;>

Příkazy break se v zásadě používají v situacích, kdy si nejsme jisti skutečným počtem iterací smyčky nebo chceme smyčku ukončit na základě nějaké podmínky.

zlomový vývojový diagram

Příklad přestávky

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

>

>

Výstup

Element found at position: 3>

b) pokračovat

Tento příkaz řízení smyčky je stejný jako příkaz break. The pokračovat prohlášení je opak toho zlomu prohlášení , namísto ukončení smyčky vynutí provedení další iterace smyčky.
Jak název napovídá, příkaz continue nutí smyčku pokračovat nebo provést další iteraci. Když je v cyklu proveden příkaz continue, kód uvnitř cyklu následující po příkazu continue bude přeskočen a začne další iterace cyklu.

Syntaxe continue

continue;>

Vývojový diagram pokračování

Vývojový diagram příkazu C continue

Příklad pokračování

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

>

>

Výstup

1 2 3 4 5 7 8 9 10>

Pokud vytvoříte proměnnou v if-else v C, bude lokální pouze pro tento blok if/else. Uvnitř bloku if/else můžete použít globální proměnné. Pokud je název proměnné, kterou jste vytvořili v if/else, stejný jako název jakékoli globální proměnné, bude mít prioritu `místní proměnná`.

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

seznam seřadit podle java

>

>

Výstup

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

C) jít do

The goto prohlášení v C také označovaný jako příkaz nepodmíněného skoku lze použít ke skoku z jednoho bodu do druhého v rámci funkce.

Syntaxe goto

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

Ve výše uvedené syntaxi první řádek říká kompilátoru, aby přešel nebo skočil na příkaz označený jako popisek. Návěští je zde uživatelem definovaný identifikátor, který označuje cílový příkaz. Příkaz bezprostředně následovaný po „label:“ je příkazem určení. Ve výše uvedené syntaxi se může před příkazem „goto label;“ objevit také „label:“.

Vývojový diagram prohlášení goto

Příklady 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;> }>

>

>

Výstup

1 2 3 4 5 6 7 8 9 10>

D) vrátit

The vrátit se v C vrátí tok provádění do funkce, odkud je volána. Toto prohlášení povinně nevyžaduje žádné podmíněné příkazy. Jakmile je příkaz vykonán, tok programu se okamžitě zastaví a vrátí řízení z místa, kde byl volán. Příkaz return může nebo nemusí vrátit nic pro funkci void, ale pro funkci non-void musí být vrácena návratová hodnota.

Vývojový diagram návratnosti

návratový vývojový diagram

Průtokový diagram návratu

Syntaxe návratu

  return    [expression]  ;>

Příklad návratu

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

>

>

Výstup

The sum is 20>