The podmienené príkazy (tiež známe ako štruktúry riadenia rozhodovania), ako napríklad ak, ak inak, prepínač atď. sa používajú na účely rozhodovania v programoch C.
Sú tiež známe ako rozhodovacie vyhlásenia a používajú sa na vyhodnotenie jednej alebo viacerých podmienok a na rozhodnutie, či vykonať súbor vyhlásení alebo nie. Tieto rozhodovacie príkazy v programovacích jazykoch rozhodujú o smere toku vykonávania programu.
Potreba podmienených vyhlásení
V reálnom živote prichádzajú situácie, keď potrebujeme urobiť nejaké rozhodnutia a na základe týchto rozhodnutí sa rozhodneme, čo by sme mali robiť ďalej. Podobné situácie vznikajú aj pri programovaní, kde potrebujeme urobiť nejaké rozhodnutia a na základe týchto rozhodnutí vykonáme ďalší blok kódu. Napríklad v C, ak sa vyskytne x, potom vykonajte y, inak vykonajte z. Môže existovať aj viacero podmienok ako v C, ak nastane x, potom vykonajte p, inak ak nastane podmienka y, vykonajte q, inak vykonajte r. Táto podmienka C else-if je jedným z mnohých spôsobov importovania viacerých podmienok.
Typy podmienených príkazov v C
Nasledujú výroky o rozhodovaní dostupné v C:
- ak Vyhlásenie
- Ak je to inak
- Vnorené if Statement
- if-else-if Rebrík
- Vyhlásenie o prepínači
- Podmienený operátor
- Skokové príkazy:
- prestávka
- ďalej
- ísť do
- vrátiť
Poďme diskutovať o každom z nich jeden po druhom.
1. ak v C
The ak vyhlásenie je najjednoduchší výrok pri rozhodovaní. Používa sa na rozhodnutie, či sa určitý príkaz alebo blok príkazov vykoná alebo nie, tj ak je určitá podmienka splnená, potom sa blok príkazov vykoná inak nie.
Syntax príkazu if
if ( condition ) { // Statements to execute if // condition is true }> Tu, stave po vyhodnotení bude buď pravda alebo nepravda. Príkaz C if akceptuje boolovské hodnoty – ak je hodnota pravdivá, vykoná sa blok príkazov pod ňou, inak nie. Ak za if (podmienka) neposkytneme zložené zátvorky „{“ a „}“, potom bude príkaz if predvolene považovať prvý príkaz uvedený bezprostredne pod jeho blokom.
Vývojový diagram vyhlásenia if

Vývojový diagram príkazu if
Príklad, ak 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ýkon
I am Not in if>
Pretože podmienka prítomná v príkaze if je nepravdivá. Takže blok pod príkazom if sa nevykoná.
2. ak-iné v C
The ak samotný príkaz nám hovorí, že ak je podmienka pravdivá, vykoná blok príkazov a ak je podmienka nepravdivá, nevykoná sa. Ale čo ak chceme urobiť niečo iné, keď je podmienka nepravdivá? Tu prichádza C inak vyhlásenie. Môžeme použiť inak vyhlásenie s ak príkaz na vykonanie bloku kódu, keď je podmienka nepravdivá. The ak-iné vyhlásenie pozostáva z dvoch blokov, jedného pre nepravdivý výraz a druhého pre pravdivý výraz.
Syntax if else v C
if ( condition ) { // Executes this block if // condition is true } else { // Executes this block if // condition is false }> Vývojový diagram vyhlásenia if-else

Vývojový diagram, ak je to inak
Prí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;> }> |
>
reťazec dĺžky
>Výkon
i is greater than 15>
Blok kódu nasledujúci za inak príkaz sa vykoná ako podmienka prítomná v ak vyhlásenie je nepravdivé.
3. Ak je vnorené v C
Vnorený if v C je príkaz if, ktorý je cieľom iného príkazu if. Vnorené príkazy if znamenajú príkaz if v inom príkaze if. Áno, C nám umožňuje vnoriť príkazy if do príkazov if, t.j. príkaz if môžeme umiestniť do iného príkazu if.
Syntax 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-others
Vývojový diagram Nested if-others
Prí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;> }> |
>
prerobiť mapu
>Výkon
i is smaller than 15 i is smaller than 12 too>
4. if-else-if Rebrík v C
The ak inokedy ako výroky sa používajú, keď sa používateľ musí rozhodnúť medzi viacerými možnosťami. Príkazy C if sa vykonávajú zhora nadol. Akonáhle je jedna z podmienok riadiacich if pravdivá, vykoná sa príkaz spojený s tým if a zvyšok rebríčka C else-if sa obíde. Ak nie je splnená žiadna z podmienok, vykoná sa posledný príkaz else. if-else-if ladder je podobný príkazu switch.
Syntax rebríka if-else-if
if ( condition ) statement; else if ( condition ) statement; . . else statement;>
Vývojový diagram rebríka if-else-if

Diagram toku if-else-if
Príklad rebríka 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ýkon
i is 20>
5. príkaz switch v C
The vyhlásenie o prepnutí prípadu je alternatívou k rebríčku if else if, ktorý možno použiť na spustenie podmieneného kódu na základe hodnoty premennej špecifikovanej v príkaze switch. Blok spínača pozostáva z prípadov, ktoré sa majú vykonať na základe hodnoty premennej spínača.
Syntax prepínača
switch ( expression ) { case value1: statements; case value2: statements; .... .... .... default: statements; }> Poznámka: Výraz prepínača by sa mal vyhodnotiť ako celé číslo alebo znak. Nemôže vyhodnotiť žiadny iný typ údajov.
Vývojový diagram prepínača

Vývojový diagram prepínača v C
Príklad príkazu prepínača
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;> }> |
reťazcové metódy java
>
>Výkon
Case 2 is executed>
6. Podmienený operátor v C
The podmienený operátor sa používa na pridanie podmieneného kódu v našom programe. Je to podobné ako s príkazom if-else. Je tiež známy ako ternárny operátor, pretože funguje na troch operandoch.
Syntax podmieneného operátora
( condition ) ? [true_statements] : [false_statements] ;>
Vývojový diagram podmieneného operátora

Prietokový diagram podmieneného operátora
Príklad podmieneného operátora
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;> }> |
>
>Výkon
Value of var when flag is 0: 25 Value of var when flag is NOT 0: -25>
7. Skokové príkazy v C
Tieto príkazy sa používajú v jazyku C na bezpodmienečný tok riadenia medzi funkciami v programe. Podporujú štyri typy príkazov skoku:
A) prestávka
Tento príkaz riadenia slučky sa používa na ukončenie cyklu. Hneď ako bude prestávka príkaz sa vyskytne v rámci cyklu, iterácie cyklu sa tam zastavia a riadenie sa vráti z cyklu okamžite k prvému príkazu po slučke.
Syntax prerušenia
break;>
V zásade sa príkazy break používajú v situáciách, keď si nie sme istí skutočným počtom iterácií cyklu alebo chceme cyklus ukončiť na základe nejakej podmienky.
Príklad prestá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ýkon
Element found at position: 3>
B) ďalej
Tento príkaz riadenia cyklu je rovnaký ako príkaz break. The ďalej vyhlásenie je opakom prestávky vyhlásenie , namiesto ukončenia cyklu núti vykonať ďalšiu iteráciu cyklu.
Ako už názov napovedá, príkaz continue núti slučku pokračovať alebo vykonať ďalšiu iteráciu. Keď sa príkaz continue vykoná v slučke, kód v slučke, ktorý nasleduje po príkaze continue, sa preskočí a začne sa ďalšia iterácia cyklu.
Syntax pokračovania
continue;>
Vývojový diagram Pokračovať
Vývojový diagram príkazu C continue
Príklad pokračovania
C
nevýhody online bankovníctva
// 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ýkon
1 2 3 4 5 7 8 9 10>
Ak vytvoríte premennú v if-else v C, bude lokálna len pre daný blok if/else. Vo vnútri bloku if/else môžete použiť globálne premenné. Ak je názov premennej, ktorú ste vytvorili v if/else, rovnaký ako názov akejkoľvek globálnej premennej, prioritu bude mať `lokálna premenná`.
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;> }> |
>
>Výkon
Before if-else block 0 if block 100 After if block 0>
c) ísť do
The goto vyhlásenie v jazyku C označovaný aj ako príkaz bezpodmienečného skoku možno použiť na skok z jedného bodu do druhého v rámci funkcie.
Syntax výrazu goto
Syntax1 | Syntax2 ---------------------------- goto label; | label: . | . . | . . | . label: | goto label;>
Vo vyššie uvedenej syntaxi prvý riadok hovorí kompilátoru, aby prešiel alebo preskočil na príkaz označený ako štítok. Označenie je tu používateľom definovaný identifikátor, ktorý označuje cieľový príkaz. Vyhlásenie, ktoré nasleduje hneď za výrazom „label:“ je vyhlásenie o mieste určenia. „label:“ sa môže vo vyššie uvedenej syntaxi objaviť aj pred príkazom „goto label;“.
Vývojový diagram vyhlásenia goto
Prí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ýkon
1 2 3 4 5 6 7 8 9 10>
D) vrátiť
The vrátiť v C vráti tok vykonávania do funkcie, odkiaľ je volaná. Toto vyhlásenie povinne nevyžaduje žiadne podmienené vyhlásenia. Akonáhle je príkaz vykonaný, tok programu sa okamžite zastaví a vráti riadenie z miesta, kde bol vyvolaný. Príkaz return môže alebo nemusí vrátiť nič pre funkciu void, ale pre funkciu bez zrušenia musí byť vrátená vrátená hodnota.
Vývojový diagram návratnosti

Prietokový diagram návratu
Syntax návratu
return [expression] ;>
Príklad vrátenia
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;> }> |
gimp odstraňuje pozadie
>
>Výkon
The sum is 20>