logo

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

De betingede uttalelser (også kjent som beslutningskontrollstrukturer) som hvis, hvis annet, brytere osv. brukes til beslutningsformål i C-programmer.

De er også kjent som Decision-Making Statements og brukes til å evaluere en eller flere forhold og ta beslutningen om å utføre et sett med uttalelser eller ikke. Disse beslutningsuttalelsene i programmeringsspråk bestemmer retningen for flyten av programkjøring.



Behov for betingede erklæringer

Det kommer situasjoner i det virkelige liv når vi trenger å ta noen avgjørelser, og basert på disse beslutningene bestemmer vi hva vi skal gjøre videre. Lignende situasjoner oppstår også i programmering der vi må ta noen avgjørelser og basert på disse beslutningene vil vi kjøre neste blokk med kode. For eksempel, i C hvis x oppstår, kjør y ellers kjør z. Det kan også være flere forhold som i C hvis x oppstår, utfør p, ellers hvis betingelse y oppstår, utfør q, ellers utfør r. Denne tilstanden til C else-if er en av mange måter å importere flere forhold på.

Typer betingede erklæringer i C

Følgende er beslutningsuttalelsene tilgjengelig i C:

  1. hvis Uttalelse
  2. if-else-erklæring
  3. Nestet if Statement
  4. if-else-if Ladder
  5. bytte erklæring
  6. Betinget operatør
  7. Hoppsetninger:
    • gå i stykker
    • Fortsette
    • gå til
    • komme tilbake

La oss diskutere hver av dem en etter en.



1. hvis i C

De hvis uttalelse er den enkleste beslutningserklæringen. Den brukes til å bestemme om en bestemt setning eller blokk med setninger skal utføres eller ikke, det vil si at hvis en bestemt betingelse er sann, blir en setningsblokk ellers ikke utført.

Syntaks for if-utsagn

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

Her, den betingelse etter evaluering vil være enten sant eller usant. C if-setningen aksepterer boolske verdier - hvis verdien er sann, vil den utføre blokken med setninger under den ellers ikke. Hvis vi ikke oppgir de krøllete klammeparentesene '{' og '}' etter if(condition), vil if-setningen som standard vurdere den første setningen rett under å være innenfor blokken.

Flytskjema for if-erklæring

hvis flytskjema

Flytdiagram for if-utsagn



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

>

>

Produksjon

I am Not in if>

Ettersom tilstanden i if-utsagnet er falsk. Så blokken under if-setningen blir ikke utført.

2. if-else i C

De hvis setning alene forteller oss at hvis en betingelse er sann, vil den utføre en blokk med setninger, og hvis betingelsen er usann, vil den ikke gjøre det. Men hva om vi ønsker å gjøre noe annet når tilstanden er falsk? Her kommer C ellers uttalelse. Vi kan bruke ellers uttalelse med hvis setning for å utføre en kodeblokk når betingelsen er falsk. De if-else-uttalelse består av to blokker, en for falskt uttrykk og en for sant uttrykk.

Syntaks for hvis annet i C

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

Flytskjema for if-else-erklæring

hvis annet flytskjema

Flytdiagram av hvis annet

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

>

>

Produksjon

i is greater than 15>

Kodeblokken som følger ellers uttalelsen utføres som tilstanden til stede i hvis uttalelsen er falsk.

3. Nestet if-else i C

En nestet if i C er en if-setning som er målet for en annen if-setning. Nestet if-setninger betyr en if-setning i en annen if-setning. Ja, C lar oss nestede if-setninger i if-setninger, det vil si at vi kan plassere en if-setning i en annen if-setning.

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

Flytskjema av Nested if-else

Flytdiagram for Nested 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;> }>

>

>

Produksjon

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

4. if-else-if Ladder i C

De hvis annet hvis uttalelser brukes når brukeren skal velge mellom flere alternativer. C if-setningene utføres ovenfra og ned. Så snart en av betingelsene som kontrollerer hvis er sann, blir setningen knyttet til det hvis utført, og resten av C else-if-stigen omgås. Hvis ingen av betingelsene er sanne, vil den siste else-setningen bli utført. if-else-if ladder ligner på switch-setningen.

Syntaks for if-else-if Ladder

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

Flytskjema for if-else-if Ladder

if-else-if-utsagnsflytskjema

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

>

>

Produksjon

i is 20>

5. bytte Uttalelse i C

De bytte saksuttalelse er et alternativ til if else if-stigen som kan brukes til å utføre den betingede koden basert på verdien av variabelen spesifisert i switch-setningen. Switch-blokken består av tilfeller som skal utføres basert på verdien av switch-variabelen.

Syntaks for bryter

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

Merk: Switch-uttrykket skal evalueres til enten heltall eller tegn. Den kan ikke evaluere noen annen datatype.

Flytskjema for bryteren

flytskjema for bytte satsing

Flytskjema for bryteren i C

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

>

>

Produksjon

Case 2 is executed>

6. Betinget operatør i C

De betinget operatør brukes til å legge til betinget kode i programmet vårt. Det ligner på if-else-utsagnet. Den er også kjent som den ternære operatøren da den fungerer på tre operander.

Syntaks for betinget operatør

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

Flytskjema for betinget operatør

flytskjema over betingede operatører

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

>

>

Produksjon

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

7. Hoppsetninger i C

Disse setningene brukes i C for den ubetingede flyten av kontroll gjennom funksjonene i et program. De støtter fire typer hoppsetninger:

EN) gå i stykker

Denne sløyfekontrollsetningen brukes til å avslutte sløyfen. Så snart gå i stykker setningen påtreffes fra en løkke, løkkeiterasjonene stopper der, og kontrollen returnerer fra løkken umiddelbart til den første setningen etter løkken.

Syntaks for pause

break;>

I utgangspunktet brukes break-utsagn i situasjoner når vi ikke er sikre på det faktiske antallet iterasjoner for loopen eller vi ønsker å avslutte loopen basert på en betingelse.

bryte flytskjema

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

>

>

Produksjon

Element found at position: 3>

B) Fortsette

Denne sløyfekontrollsetningen er akkurat som break-setningen. De Fortsette uttalelse er motsatt av pausen uttalelse , i stedet for å avslutte løkken, tvinger den til å utføre neste iterasjon av løkken.
Som navnet antyder tvinger continu-setningen løkken til å fortsette eller utføre neste iterasjon. Når continu-setningen kjøres i loopen, vil koden i loopen som følger fortsette-setningen hoppes over og neste iterasjon av loopen vil begynne.

Syntaks for fortsette

continue;>

Flytskjema for Fortsett

Flytdiagram av C fortsett-setning

Eksempel på fortsett

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

>

>

Produksjon

1 2 3 4 5 7 8 9 10>

Hvis du oppretter en variabel i if-else i C, vil den kun være lokal for den if/else-blokken. Du kan bruke globale variabler i if/else-blokken. Hvis navnet på variabelen du opprettet i if/else er det samme som en hvilken som helst global variabel, vil den lokale variabelen prioriteres.

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

>

>

Produksjon

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

C) gå til

De goto uttalelse i C også referert til som den ubetingede hoppsetningen kan brukes til å hoppe fra ett punkt til et annet innenfor en funksjon.

Syntaks for goto

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

I syntaksen ovenfor forteller den første linjen kompilatoren om å gå til eller hoppe til setningen merket som en etikett. Her er en etikett en brukerdefinert identifikator som indikerer målsetningen. Uttalelsen som følger umiddelbart etter «etikett:» er destinasjonserklæringen. 'Label:' kan også vises før 'goto label;'-setningen i syntaksen ovenfor.

Flytskjema for goto-uttalelse

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

>

>

Produksjon

1 2 3 4 5 6 7 8 9 10>

D) retur

De komme tilbake i C returnerer flyten av utførelsen til funksjonen der den kalles. Denne erklæringen trenger ikke nødvendigvis noen betingede erklæringer. Så snart setningen er utført, stopper flyten av programmet umiddelbart og returnerer kontrollen fra der den ble kalt. Return-setningen kan eller kan ikke returnere noe for en void-funksjon, men for en ikke-void-funksjon må en returverdi returneres.

Flytskjema for avkastning

retur flytskjema

Flytdiagram for retur

Syntaks for avkastning

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

>

>

Produksjon

The sum is 20>