The pogojne izjave (znane tudi kot strukture za nadzor odločanja), kot so if, if else, switch itd., se uporabljajo za namene odločanja v programih C.
Znani so tudi kot izjave o odločanju in se uporabljajo za ovrednotenje enega ali več pogojev in sprejemanje odločitve, ali naj se niz stavkov izvede ali ne. Ti stavki za odločanje v programskih jezikih odločajo o smeri poteka izvajanja programa.
Potreba po pogojnih stavkih
V resničnem življenju pridejo situacije, ko moramo sprejeti nekaj odločitev in se na podlagi teh odločitev odločimo, kaj bomo storili naprej. Podobne situacije se pojavljajo tudi pri programiranju, kjer moramo sprejeti nekaj odločitev in na podlagi teh odločitev bomo izvedli naslednji blok kode. Na primer, v C, če se pojavi x, potem izvedite y, sicer izvedite z. Obstaja lahko tudi več pogojev, kot je v C, če se pojavi x, potem izvedite p, drugače, če se pojavi pogoj y, izvedite q, drugače pa izvedite r. Ta pogoj C else-if je eden od mnogih načinov uvoza več pogojev.
Vrste pogojnih stavkov v C
Sledijo izjave o odločanju, ki so na voljo v C:
- Izjava if
- Izjava if-else
- Ugnezdeni stavek if
- če-drugače-če Lestev
- stikalo Izjava
- Pogojni operater
- Izjave o skoku:
- odmor
- nadaljevati
- Pojdi do
- vrnitev
Razpravljajmo o vsakem od njih enega za drugim.
1. če v C
The izjava if je najbolj preprosta izjava za odločanje. Uporablja se za odločitev, ali bo določen stavek ali blok stavkov izveden ali ne, tj. če je določen pogoj resničen, se blok stavkov izvede, sicer ne.
Sintaksa izjave if
if ( condition ) { // Statements to execute if // condition is true }> Tukaj, stanje po oceni bo resnična ali napačna. Stavek C if sprejema logične vrednosti – če je vrednost resnična, bo izvedel blok stavkov pod njim, sicer ne. Če za if(pogoj) ne navedemo zavitih oklepajev '{' in '}', potem bo stavek if privzeto upošteval, da je prvi takoj spodnji stavek znotraj njegovega bloka.
Diagram poteka izjave if

Diagram poteka stavka if
Primer če je 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'>);> }> |
>
>Izhod
I am Not in if>
Ker je pogoj, prisoten v stavku if, napačen. Torej se blok pod stavkom if ne izvede.
2. if-else v C
The če sama izjava nam pove, da če je pogoj resničen, bo izvedel blok stavkov, če je pogoj napačen, pa ne. Kaj pa, če želimo narediti nekaj drugega, ko je pogoj napačen? Tukaj prihaja C drugače izjava. Lahko uporabimo drugače izjava z če stavek za izvedbo bloka kode, ko je pogoj napačen. The stavek if-else je sestavljen iz dveh blokov, enega za napačno izražanje in enega za resnično izražanje.
Sintaksa if else v C
if ( condition ) { // Executes this block if // condition is true } else { // Executes this block if // condition is false }> Diagram poteka izjave if-else

Diagram poteka if else
Primer 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;> }> |
>
>Izhod
i is greater than 15>
Blok kode, ki sledi drugače stavek se izvede kot pogoj, prisoten v če izjava je napačna.
vlc media player prenos youtube
3. Ugnezdeno if-else v C
Ugnezdeni if v C je stavek if, ki je cilj drugega stavka if. Ugnezdeni stavki if pomenijo stavek if znotraj drugega stavka if. Da, C nam omogoča ugnezdenje stavkov if znotraj stavkov if, tj. stavek if lahko postavimo znotraj drugega stavka if.
Sintaksa ugnezdenega if-else
if ( condition1 ) { // Executes when condition1 is true if ( condition2 ) { // Executes when condition2 is true } else { // Executes when condition2 is false }> Diagram poteka ugnezdenih if-else
Diagram poteka ugnezdenega if-else
Primer ugnezdenega 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;> }> |
>
>Izhod
i is smaller than 15 i is smaller than 12 too>
4. if-else-if Lestev v C
The if else if izjave se uporabljajo, ko se mora uporabnik odločiti med več možnostmi. Stavki C if se izvajajo od zgoraj navzdol. Takoj, ko je eden od pogojev, ki nadzorujejo if, resničen, se izvede stavek, povezan s tem if, preostali del lestvice C else-if pa se zaobide. Če nobeden od pogojev ni resničen, bo izveden zadnji stavek else. lestev if-else-if je podobna stavku switch.
kako odpreti datoteko json
Sintaksa lestve if-else-if
if ( condition ) statement; else if ( condition ) statement; . . else statement;>
Diagram poteka lestve if-else-if

Diagram poteka if-else-if
Primer lestve 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'>);> }> |
>
>Izhod
i is 20>
5. Izjava switch v C
The izjavo o zamenjavi primera je alternativa lestvici if else if, ki jo je mogoče uporabiti za izvajanje pogojne kode na podlagi vrednosti spremenljivke, določene v stavku switch. Preklopni blok je sestavljen iz primerov, ki jih je treba izvesti na podlagi vrednosti preklopne spremenljivke.
Sintaksa stikala
switch ( expression ) { case value1: statements; case value2: statements; .... .... .... default: statements; }> Opomba: Preklopni izraz mora biti ovrednoten kot celo število ali znak. Ne more ovrednotiti nobene druge vrste podatkov.
Diagram poteka stikala

Diagram poteka stikala v C
Primer izjave o preklopu
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;> }> |
>
>Izhod
Case 2 is executed>
6. Pogojni operator v C
The pogojni operator se uporablja za dodajanje pogojne kode v naš program. Podobno je stavku if-else. Znan je tudi kot ternarni operater, saj deluje na treh operandih.
Sintaksa pogojnega operatorja
( condition ) ? [true_statements] : [false_statements] ;>
Diagram poteka pogojnega operatorja

Diagram poteka pogojnega operatorja
Primer pogojnega operatorja
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;> }> |
>
odzivna tabela
>Izhod
Value of var when flag is 0: 25 Value of var when flag is NOT 0: -25>
7. Izjave o skokih v C
Ti stavki se uporabljajo v C za brezpogojni tok nadzora skozi funkcije v programu. Podpirajo štiri vrste stavkov za skok:
A) odmor
Ta stavek za krmiljenje zanke se uporablja za prekinitev zanke. Takoj, ko se odmor stavek naleti znotraj zanke, se ponovitve zanke tam ustavijo in nadzor se vrne iz zanke takoj k prvemu stavku za zanko.
Sintaksa preloma
break;>
V bistvu se stavki za prekinitev uporabljajo v situacijah, ko nismo prepričani o dejanskem številu ponovitev zanke ali pa želimo prekiniti zanko na podlagi nekega pogoja.
Primer odmora
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; }> |
>
>Izhod
Element found at position: 3>
B) nadaljevati
Ta stavek za krmiljenje zanke je enak kot stavek za prekinitev. The nadaljevati izjava je v nasprotju s prelomom izjava , namesto da prekine zanko, prisili k izvedbi naslednje ponovitve zanke.
Kot že ime pove, stavek continue prisili zanko k nadaljevanju ali izvedbi naslednje ponovitve. Ko se v zanki izvede stavek continue, bo koda znotraj zanke, ki sledi stavku continue, preskočena in začela se bo naslednja ponovitev zanke.
Sintaksa za nadaljevanje
continue;>
Diagram poteka za nadaljevanje
Diagram poteka izjave C continue
Primer nadaljevanja
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;> }> |
>
>Izhod
1 2 3 4 5 7 8 9 10>
Če ustvarite spremenljivko v if-else v C, bo lokalna le za ta blok if/else. Znotraj bloka if/else lahko uporabite globalne spremenljivke. Če je ime spremenljivke, ki ste jo ustvarili v if/else, enako kot katera koli globalna spremenljivka, bo prednost dana `lokalni spremenljivki`.
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;> }> |
>
>Izhod
Before if-else block 0 if block 100 After if block 0>
C) Pojdi do
The izjava goto v C, imenovan tudi stavek brezpogojnega skoka, se lahko uporablja za skok z ene točke na drugo znotraj funkcije.
Sintaksa goto
Syntax1 | Syntax2 ---------------------------- goto label; | label: . | . . | . . | . label: | goto label;>
V zgornji sintaksi prva vrstica pove prevajalniku, naj gre ali skoči na stavek, označen kot oznaka. Tukaj je oznaka uporabniško definiran identifikator, ki označuje ciljni stavek. Stavek, ki sledi takoj za oznako »label:«, je ciljni stavek. »Oznaka:« se lahko pojavi tudi pred stavkom »goto label;« v zgornji sintaksi.
Diagram poteka izjave goto
kako pretvoriti niz v celo število java
Primeri 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;> }> |
>
>Izhod
1 2 3 4 5 6 7 8 9 10>
D) vrnitev
The vrnitev v C vrne tok izvajanja funkciji, od koder je bila klicana. Ta stavek ne potrebuje obvezno nobenih pogojnih stavkov. Takoj ko se stavek izvede, se tok programa takoj ustavi in vrne nadzor od koder je bil poklican. Stavek vrnitve lahko ali pa ne vrne ničesar za funkcijo void, toda za funkcijo, ki ni void, je treba vrniti vrnjeno vrednost.
Diagram poteka vračanja

Diagram poteka vračanja
Sintaksa povratka
return [expression] ;>
Primer vračila
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;> }> |
>
>Izhod
The sum is 20>