logo

Beslutsfattande i C (if , if..else, Nested if, if-else-if )

De villkorliga uttalanden (även känd som beslutskontrollstrukturer) som om, om annat, switch etc. används för beslutsfattande syften i C-program.

De är också kända som Decision-Making Statements och används för att utvärdera ett eller flera villkor och fatta beslut om att utföra en uppsättning uttalanden eller inte. Dessa beslutsfattande uttalanden i programmeringsspråk bestämmer riktningen för flödet av programexekvering.

Behov av villkorliga uttalanden

Det kommer situationer i det verkliga livet när vi behöver fatta några beslut och utifrån dessa beslut bestämmer vi vad vi ska göra härnäst. Liknande situationer uppstår i programmering också där vi behöver fatta några beslut och baserat på dessa beslut kommer vi att exekvera nästa kodblock. Till exempel, i C om x inträffar, exekvera y annars exekvera z. Det kan också finnas flera villkor som i C om x inträffar, exekvera p, annars om villkor y inträffar exekvera q, annars exekvera r. Detta villkor för C else-if är ett av många sätt att importera flera villkor.



Typer av villkorliga uttalanden i C

Följande är de beslutsfattande uttalanden som finns tillgängliga i C:

  1. om uttalande
  2. if-else uttalande
  3. Kapslad if Statement
  4. om-annat-om Stege
  5. byta uttalande
  6. Villkorlig operatör
  7. Hoppa uttalanden:
    • ha sönder
    • Fortsätta
    • gå till
    • lämna tillbaka

Låt oss diskutera var och en av dem en efter en.

1. om i C

De om uttalande är det enklaste beslutsfattandet. Det används för att bestämma om ett visst uttalande eller ett block av satser kommer att exekveras eller inte, dvs om ett visst villkor är sant exekveras ett satsblock annars inte.

Syntax för if-uttalande

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

Här, den skick efter utvärdering kommer att vara antingen sant eller falskt. C if-satsen accepterar booleska värden – om värdet är sant kommer det att exekvera blocket av satser under det annars inte. Om vi ​​inte tillhandahåller de lockiga klammerparenteserna '{' och '}' efter if(villkor) så kommer if-satsen som standard att betrakta den första omedelbart nedanför-satsen som inuti dess block.

Flödesschema över if-uttalande

om flödesschema

Flödesdiagram för if-uttalande

Exempel på om 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>

Eftersom villkoret i if-påståendet är falskt. Så blocket under if-satsen körs inte.

2. if-else i C

De om enbart uttalandet säger oss att om ett villkor är sant kommer det att exekvera ett block av satser och om villkoret är falskt kommer det inte att göra det. Men vad händer om vi vill göra något annat när villkoret är falskt? Här kommer C annan påstående. Vi kan använda annan uttalande med om sats för att exekvera ett kodblock när villkoret är falskt. De if-else uttalande består av två block, ett för falskt uttryck och ett för sant uttryck.

Syntax för om annat i C

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

Flödesschema för if-else Statement

om annat flödesschema

Flödesdiagram över om annat

Exempel 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>

Kodblocket efter annan uttalandet exekveras som det villkor som finns i om påståendet är falskt.

3. Kapslad if-else i C

En kapslad if i C är en if-sats som är målet för en annan if-sats. Kapslade if-satser betyder en if-sats inuti en annan if-sats. Ja, C tillåter oss att kapsla if-satser inom if-satser, det vill säga vi kan placera en if-sats i en annan if-sats.

Syntax för Nested if-else

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

Flödesschema av Nested if-else

Flödesdiagram för kapslad om-annat

Exempel på Nested if-else

C


byta java-programmering



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

De om annat om uttalanden används när användaren måste välja mellan flera alternativ. C if-satserna körs uppifrån och ner. Så snart ett av villkoren som styr if är sant, exekveras uttalandet som är associerat med det if, och resten av C else-if-stegen förbigås. Om inget av villkoren är sant kommer den sista else-satsen att köras. if-else-if ladder liknar switch-satsen.

Syntax för if-else-if Ladder

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

Flödesschema för if-else-if Ladder

if-else-if uttalande flödesschema

Flödesdiagram för om-annan-om

Exempel 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. byta uttalande i C

De byta fall uttalande är ett alternativ till if else if-stegen som kan användas för att exekvera den villkorliga koden baserat på värdet på variabeln som anges i switch-satsen. Switchblocket består av fall som ska exekveras baserat på värdet på switchvariabeln.

Syntax för switch

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

Notera: Switch-uttrycket bör utvärderas till antingen heltal eller tecken. Den kan inte utvärdera någon annan datatyp.

Flödesschema för switch

switch satement flödesschema

Flödesschema för switch i C

Exempel på switch Statement

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. Villkorlig operatör i C

De villkorlig operatör används för att lägga till villkorlig kod i vårt program. Det liknar om-else-påståendet. Den är också känd som den ternära operatorn eftersom den fungerar på tre operander.

Syntax för villkorlig operatör

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

Flödesschema för villkorlig operatör

flödesschema över villkorade operatörer

Flödesdiagram för villkorlig operatör

Exempel på villkorlig operatör

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

>

>

unordered_map c++
Produktion

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

7. Hopppåståenden i C

Dessa satser används i C för det ovillkorliga flödet av kontroll genom funktionerna i ett program. De stöder fyra typer av hopppåståenden:

A) ha sönder

Denna loopkontrollsats används för att avsluta loopen. Så snart som ha sönder satsen påträffas inifrån en slinga, slutar loop-iterationerna där och kontrollen återgår från slingan omedelbart till den första satsen efter loopen.

Syntax för break

break;>

I grund och botten används break-satser i situationer när vi inte är säkra på det faktiska antalet iterationer för slingan eller vi vill avsluta slingan baserat på något villkor.

bryta flödesschema

Exempel på paus

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) Fortsätta

Denna loopkontrollsats är precis som break-satsen. De Fortsätta påstående är motsatsen till pausen påstående , istället för att avsluta slingan, tvingar den att utföra nästa iteration av slingan.
Som namnet antyder tvingar continu-satsen loopen att fortsätta eller köra nästa iteration. När continu-satsen exekveras i loopen, kommer koden inuti loopen efter continu-satsen att hoppas över och nästa iteration av loopen börjar.

Syntax för fortsätt

continue;>

Flödesschema för Fortsätt

Flödesdiagram av C fortsätt uttalande

Exempel på fortsätt

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>

Om du skapar en variabel i if-else i C kommer den endast att vara lokal för det if/else-blocket. Du kan använda globala variabler i if/else-blocket. Om namnet på variabeln du skapade i if/else är likadant som någon global variabel kommer den `lokala variabeln` att ges prioritet.

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å till

De goto uttalande i C även kallad det ovillkorliga hoppsatsen kan användas för att hoppa från en punkt till en annan inom en funktion.

Syntax för goto

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

I ovanstående syntax säger den första raden till kompilatorn att gå till eller hoppa till satsen markerad som en etikett. Här är en etikett en användardefinierad identifierare som indikerar målsatsen. Uttalandet omedelbart efter 'etikett:' är destinationsuttrycket. 'Label:' kan också visas före 'goto label;'-satsen i ovanstående syntax.

Flödesschema för goto Statement

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

>

>

ett objekt i java
Produktion

1 2 3 4 5 6 7 8 9 10>

D) återvända

De lämna tillbaka i C returnerar flödet av exekveringen till funktionen varifrån den anropas. Detta uttalande behöver inte obligatoriskt några villkorade uttalanden. Så snart satsen exekveras stoppas programmets flöde omedelbart och returnerar kontrollen från där den anropades. Return-satsen kan eller kanske inte returnerar något för en void-funktion, men för en icke-void-funktion måste ett returvärde returneras.

Flödesschema för avkastning

returflödesschema

Flödesdiagram för retur

Syntax för avkastning

  return    [expression]  ;>

Exempel 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>