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:
- if Prohlášení
- if-else prohlášení
- Vnořený příkaz if
- if-else-if Žebřík
- příkaz switch
- Podmíněný operátor
- 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

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

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 JavaVý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

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 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é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 poleVý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.
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

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>