logo

Beslutningstagning i C (hvis , hvis..else, Indlejret hvis, hvis-else-hvis )

Det betingede erklæringer (også kendt som beslutningskontrolstrukturer) såsom hvis, hvis andet, switch osv. bruges til beslutningsformål i C-programmer.

De er også kendt som beslutningstagningserklæringer og bruges til at evaluere en eller flere betingelser og træffe beslutningen om, hvorvidt et sæt erklæringer skal udføres eller ej. Disse beslutningsudsagn i programmeringssprog bestemmer retningen for strømmen af ​​programudførelse.



Behov for betingede erklæringer

Der kommer situationer i det virkelige liv, hvor vi skal træffe nogle beslutninger, og baseret på disse beslutninger beslutter vi, hvad vi skal gøre næste gang. Lignende situationer opstår også i programmering, hvor vi skal træffe nogle beslutninger, og baseret på disse beslutninger vil vi udføre den næste kodeblok. For eksempel, i C, hvis x forekommer, skal du udføre y ellers udføre z. Der kan også være flere betingelser som i C, hvis x opstår, så udfør p, ellers, hvis betingelse y opstår, udfør q, ellers kør r. Denne betingelse for C else-if er en af ​​de mange måder at importere flere betingelser på.

Typer af betingede erklæringer i C

Følgende er de beslutningserklæringer, der er tilgængelige i C:

  1. hvis Erklæring
  2. if-else erklæring
  3. Indlejret if-erklæring
  4. hvis-andet-hvis Stige
  5. skifte erklæring
  6. Betinget operatør
  7. Jump-udsagn:
    • pause
    • Blive ved
    • gå til
    • Vend tilbage

Lad os diskutere hver af dem én efter én.



1. hvis i C

Det hvis erklæring er den mest enkle beslutningserklæring. Det bruges til at afgøre, om en bestemt sætning eller blok af sætninger vil blive udført eller ej, dvs. hvis en bestemt betingelse er sand, udføres en blok af sætninger ellers ikke.

Syntaks for if-erklæring

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

Her, den tilstand efter evaluering vil være enten sand eller falsk. C if-sætningen accepterer booleske værdier - hvis værdien er sand, vil den udføre blokken af ​​sætninger under den ellers ikke. Hvis vi ikke leverer de krøllede klammeparenteser '{' og '}' efter if(betingelse), vil if-sætningen som standard betragte den første umiddelbart nedenfor sætning som værende inden for dens blok.

Flowchart over if-erklæring

hvis flowdiagram

Flowdiagram af if-sætning



Eksempel på hvis i 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'>);> }>

>

>

Produktion

I am Not in if>

Da betingelsen i if-erklæringen er falsk. Så blokken under if-sætningen udføres ikke.

2. if-else i C

Det hvis Udsagn alene fortæller os, at hvis en betingelse er sand, vil den udføre en blok af udsagn, og hvis betingelsen er falsk, vil den ikke. Men hvad hvis vi vil gøre noget andet, når betingelsen er falsk? Her kommer C andet udmelding. Vi kan bruge andet erklæring med hvis sætning til at udføre en kodeblok, når betingelsen er falsk. Det if-else erklæring består af to blokke, en for falsk udtryk og en for sandt udtryk.

Syntaks for hvis andet i C

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

Flowchart af if-else-erklæring

hvis andet flowchart

Flowdiagram af evt

Eksempel på 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;> }>

>

>

Produktion

i is greater than 15>

Kodeblokken efter andet erklæring udføres som betingelsen til stede i hvis udsagnet er falsk.

3. Indlejret if-else i C

En indlejret if i C er en if-sætning, der er målet for en anden if-sætning. Indlejret if-sætninger betyder en if-sætning inde i en anden if-sætning. Ja, C tillader os at indlejre if-sætninger i if-sætninger, dvs. vi kan placere en if-sætning i en anden if-sætning.

Syntaks for Nested if-else

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

Flowchart af Nested if-else

Flowdiagram over indlejret if-else

Eksempel på 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;> }>

>

>

Produktion

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

4. if-else-if Ladder i C

Det hvis andet hvis udsagn bruges, når brugeren skal vælge mellem flere muligheder. C if-sætningerne udføres fra toppen og ned. Så snart en af ​​betingelserne, der styrer hvis, er sand, udføres erklæringen, der er knyttet til dette hvis, og resten af ​​C else-if-stigen omgås. Hvis ingen af ​​betingelserne er sande, vil den endelige else-erklæring blive udført. if-else-if ladder ligner switch-sætningen.

Syntaks for if-else-if Ladder

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

Flowchart over if-else-if Ladder

if-else-if erklæring flowchart

Flowdiagram af if-else-if

Eksempel på if-else-if Ladder

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

>

>

Produktion

i is 20>

5. skifte erklæring i C

Det skifte sagsopgørelse er et alternativ til if else if-stigen, der kan bruges til at udføre den betingede kode baseret på værdien af ​​variablen specificeret i switch-sætningen. Switch-blokken består af cases, der skal udføres baseret på værdien af ​​switch-variablen.

Syntaks af switch

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

Bemærk: Skiftudtrykket skal evalueres til enten heltal eller tegn. Den kan ikke evaluere nogen anden datatype.

Flowchart af switch

switch satement flowchart

Flowchart af switch i C

Eksempel på skifteerklæring

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

>

>

Produktion

Case 2 is executed>

6. Betinget operatør i C

Det betinget operatør bruges til at tilføje betinget kode i vores program. Det ligner if-else-udsagnet. Den er også kendt som den ternære operator, da den fungerer på tre operander.

Syntaks for betinget operatør

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

Flowchart over betinget operatør

flowchart over betingede operatører

Flowdiagram for betinget operatør

Eksempel på betinget operatør

C

kassen i git




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

>

>

Produktion

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

7. Jump-udsagn i C

Disse udsagn bruges i C til det ubetingede flow af kontrol gennem funktionerne i et program. De understøtter fire typer springudsagn:

EN) pause

Denne løkkekontrolsætning bruges til at afslutte løkken. Så snart pause sætning stødes på inde fra en løkke, løkke-iterationerne stopper der, og kontrol vender tilbage fra løkken umiddelbart til den første sætning efter løkken.

Syntaks for pause

break;>

Grundlæggende bruges break-sætninger i situationer, hvor vi ikke er sikre på det faktiske antal iterationer for løkken, eller vi ønsker at afslutte løkken baseret på en betingelse.

bryde flowchart

Eksempel på pause

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

>

>

Produktion

Element found at position: 3>

B) Blive ved

Denne sløjfekontrolsætning er ligesom break-sætningen. Det Blive ved udmelding er modsat pausens udmelding , i stedet for at afslutte løkken, tvinger den til at udføre den næste iteration af løkken.
Som navnet antyder tvinger continu-sætningen løkken til at fortsætte eller udføre den næste iteration. Når continue-sætningen udføres i løkken, vil koden inde i løkken efter continue-sætningen blive sprunget over, og den næste iteration af løkken vil begynde.

Syntaks for fortsæt

continue;>

Flowchart for Fortsæt

Flowdiagram af C fortsæt erklæring

Eksempel på fortsæt

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

>

>

Produktion

1 2 3 4 5 7 8 9 10>

Hvis du opretter en variabel i if-else i C, vil den kun være lokal for den if/else-blok. Du kan bruge globale variabler inde i if/else-blokken. Hvis navnet på den variabel, du oprettede i if/else, er det samme som enhver global variabel, vil den 'lokale variabel' blive prioriteret.

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

>

>

Produktion

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

C) gå til

Det goto erklæring i C også kaldet den ubetingede jump-sætning kan bruges til at hoppe fra et punkt til et andet inden for en funktion.

Syntaks af goto

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

I ovenstående syntaks fortæller den første linje compileren om at gå til eller hoppe til sætningen markeret som en etiket. Her er en etiket en brugerdefineret identifikator, der angiver målsætningen. Udtalelsen umiddelbart efter 'label:' er destinationserklæringen. 'Label:' kan også vises før 'goto label;'-sætningen i ovenstående syntaks.

Flowchart af goto-erklæring

Eksempler på 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;> }>

>

>

Produktion

1 2 3 4 5 6 7 8 9 10>

D) returnere

Det Vend tilbage i C returnerer flowet af udførelsen til funktionen, hvorfra den kaldes. Denne erklæring behøver ikke nødvendigvis nogen betingede erklæringer. Så snart sætningen er udført, stopper programmets flow øjeblikkeligt og returnerer kontrollen, hvorfra den blev kaldt. Retursætningen kan muligvis returnere noget for en void-funktion, men for en ikke-void-funktion skal der returneres en returværdi.

Flowchart over afkast

returflowdiagram

Flowdiagram over retur

Syntaks for afkast

  return    [expression]  ;>

Eksempel på retur

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

>

>

Produktion

The sum is 20>