C Villkorsförklaring: IF, IF Else och Nested IF Else med exempel

Vad är ett villkorligt uttalande i C?

Villkorliga uttalanden i C programmering används för att fatta beslut utifrån förutsättningarna. Villkorliga satser körs sekventiellt när det inte finns något villkor runt satserna. Om du sätter något villkor för ett block av satser, kan exekveringsflödet ändras baserat på resultatet som utvärderas av villkoret. Denna process kallas beslutsfattande i 'C.'

I 'C'-programmering är villkorliga uttalanden möjliga med hjälp av följande två konstruktioner:

1. Om uttalande

2. Om-annat uttalande

Det kallas också för förgrening eftersom ett program bestämmer vilken sats som ska köras baserat på resultatet av det utvärderade villkoret.

Om uttalande

Det är ett av de kraftfulla villkorliga uttalandena. If-satsen är ansvarig för att modifiera flödet av exekvering av ett program. If-satsen används alltid med ett villkor. Villkoret utvärderas först innan någon sats körs inuti Ifs brödtext. Syntaxen för if-satsen är följande:

 if (condition) 
     instruction;

Villkoret utvärderas till antingen sant eller falskt. True är alltid ett värde som inte är noll, och false är ett värde som innehåller noll. Instruktioner kan vara en enstaka instruktion eller ett kodblock som omges av hängslen { }.

Följande program illustrerar användningen av if-konstruktion i 'C'-programmering:

#include<stdio.h>
int main()
{
	int num1=1;
	int num2=2;
	if(num1<num2)		//test-condition
	{
		printf("num1 is smaller than num2");
	}
	return 0;
}

Produktion:

num1 is smaller than num2

Ovanstående program illustrerar användningen av if-konstruktion för att kontrollera likheten mellan två tal.

Om uttalande

  1. I programmet ovan har vi initierat två variabler med num1, num2 med värdet 1, 2 respektive.
  2. Sedan har vi använt if med ett testuttryck för att kontrollera vilket nummer som är minst och vilket nummer som är störst. Vi har använt ett relationsuttryck i if-konstruktion. Eftersom värdet på num1 är mindre än num2 kommer villkoret att utvärderas till sant.
  3. Således kommer det att skriva ut uttalandet inuti blocket av If. Därefter kommer kontrollen att gå utanför blocket och programmet avslutas med ett framgångsrikt resultat.

Relations Operatorer

C har sex relationsoperatorer som kan användas för att formulera ett booleskt uttryck för att fatta ett beslut och testa villkor, som returnerar sant eller falskt:

< mindre än

<= mindre än eller lika med

> större än

>= större än eller lika med

== lika med

!= inte lika med

Lägg märke till att det lika testet (==) skiljer sig från uppdragsoperatören (=) eftersom det är ett av de vanligaste problemen som en programmerare möter genom att blanda ihop dem.

Till exempel:

int x = 41;
x =x+ 1;
if (x == 42) {
   printf("You succeed!");}

Utgång:

 You succeed

Tänk på att ett villkor som utvärderas till ett värde som inte är noll anses vara sant.

Till exempel:

int present = 1;
if (present)
  printf("There is someone present in the classroom \n");

Utgång:

There is someone present in the classroom

If-Else uttalandet

If-Else uttalandet

If-else is-satsen är en utökad version av If. Den allmänna formen av if-else är följande:

if (test-expression)
{
    True block of statements
}
Else
{
    False block of statements
}
Statements;

n den här typen av en konstruktion, om värdet av test-uttryck är sant, kommer det sanna blocket av satser att exekveras. Om värdet på test-uttrycket är falskt, kommer det falska blocket av satser att köras. I vilket fall som helst, efter exekveringen kommer kontrollen automatiskt att överföras till de satser som visas utanför blocket av If.

Följande program illustrerar användningen av if-else-konstruktionen:


Vi kommer att initialisera en variabel med något värde och skriva ett program för att avgöra om värdet är mindre än tio eller större än tio.

Låt oss börja.

#include<stdio.h>
int main()
{
	int num=19;
	if(num<10)
	{
		printf("The value is less than 10");
	}
	else
	{
		printf("The value is greater than 10");
	}
	return 0;
}

Produktion:

The value is greater than 10

If-Else uttalandet

  1. Vi har initierat en variabel med värdet 19. Vi måste ta reda på om talet är större eller mindre än 10 med hjälp av ett 'C'-program. För att göra detta har vi använt om-else-konstruktionen.
  2. Här har vi angett ett villkor num<10 eftersom vi måste jämföra vårt värde med 10.
  3. Som du kan se är det första blocket alltid ett sant block, vilket betyder att om värdet på testuttrycket är sant så kommer det första blocket som är If att exekveras.
  4. Det andra blocket är ett annat block. Detta block innehåller de satser som kommer att exekveras om värdet på testuttrycket blir falskt. I vårt program är värdet på num större än tio, så testvillkoret blir falskt och annars exekveras blocket. Således kommer vår utdata från ett annat block som är "Värdet är större än 10". Efter if-else kommer programmet att avslutas med ett framgångsrikt resultat.

I 'C'-programmering kan vi använda flera if-else-konstruktioner inom varandra som kallas kapsling av if-else-satser.

Villkorliga uttryck

Det finns ett annat sätt att uttrycka ett om-annat-påstående är genom att introducera ?: operatör. I ett villkorligt uttryck ?: operatören har bara en sats kopplad till om och den andra.

Till exempel:

#include <stdio.h>
int main() {
  int y;
  int x = 2;
   y = (x >= 6) ?  6 : x;/* This is equivalent to:  if (x >= 5)    y = 5;  else    y = x; */
   printf("y =%d ",y);
  return 0;}

Utgång:

y =2

Kapslade If-else-uttalanden

När en serie beslut krävs används kapslade if-else. Nesting innebär att använda en om-annas-konstruktion inom en annan.

Låt oss skriva ett program för att illustrera användningen av kapslade if-else.

#include<stdio.h>
int main()
{
	int num=1;
	if(num<10)
	{
		if(num==1)
		{
			printf("The value is:%d\n",num);
		}
		else
		{
			printf("The value is greater than 1");
		}
	}
	else
	{
		printf("The value is greater than 10");
	}
	return 0;
}

Produktion:

The value is:1

Ovanstående program kontrollerar om ett tal är mindre eller större än 10 och skriver ut resultatet med en kapslad if-else-konstruktion.

Kapslade If-else-uttalanden

  1. Först har vi deklarerat en variabel num med värdet som 1. Sedan har vi använt if-else-konstruktionen.
  2. I det yttre if-else kontrollerar det angivna villkoret om ett tal är mindre än 10. Om villkoret är sant då och först då kommer det att exekvera inre slinga. I detta fall är villkoret sant, varför det inre blocket bearbetas.
  3. I det inre blocket har vi återigen ett villkor som kontrollerar om vår variabel innehåller värdet 1 eller inte. När ett villkor är sant kommer det att bearbeta If-blocket annars kommer det att bearbeta ett annat block. I det här fallet är villkoret sant, vilket innebär att Om ett block exekveras och värdet skrivs ut på utmatningsskärmen.
  4. Ovanstående program kommer att skriva ut värdet av a variabel och avsluta med framgång.

Prova att ändra värdet på variabeln och se hur programmet beter sig.

OBS: I kapslade if-else måste vi vara försiktiga med indraget eftersom flera if-else-konstruktioner är involverade i denna process, så det blir svårt att räkna ut individuella konstruktioner. Korrekt indrag gör det lätt att läsa programmet.

Kapslade Else-if-påståenden

Nested else-if används när flervägsbeslut krävs.

Den allmänna syntaxen för hur else-if-stegar är konstruerade i "C"-programmering är följande:

 if (test - expression 1) {
    statement1;
} else if (test - expression 2) {
    Statement2;
} else if (test - expression 3) {
    Statement3;
} else if (test - expression n) {
    Statement n;
} else {
    default;
}
Statement x;

Denna typ av struktur är känd som else-if-stegen. Denna kedja ser i allmänhet ut som en stege, därför kallas den också för en else-if-stege. Testuttrycken utvärderas från topp till botten. Närhelst ett sant testuttryck hittas, exekveras en sats som är associerad med den. När alla n testuttrycken blir falska, exekveras standardsatsen else.

Låt oss se själva arbetet med hjälp av ett program.

#include<stdio.h>
int main()
{
	int marks=83;
	if(marks>75){
		printf("First class");
	}
	else if(marks>65){
		printf("Second class");
	}
	else if(marks>55){
		printf("Third class");
	}
	else{
		printf("Fourth class");
	}
	return 0;
}

Produktion:

First class

Ovanstående program skriver ut betyget enligt poängen i ett test. Vi har använt else-if ladder-konstruktionen i programmet ovan.

Kapslade annat-om-uttalanden

  1. Vi har initierat en variabel med markeringar. I else-if-stegestrukturen har vi tillhandahållit olika villkor.
  2. Värdet från de variabla markeringarna kommer att jämföras med det första villkoret eftersom det är sant att påståendet som är associerat med det kommer att skrivas ut på utdataskärmen.
  3. Om det första testvillkoret visar sig vara falskt jämförs det med det andra villkoret.
  4. Denna process kommer att fortsätta tills all-uttrycket utvärderas, annars kommer kontrollen att försvinna från else-if-stegen och standarduttrycket kommer att skrivas ut.

Försök att ändra värdet och märk förändringen i utdata.

Sammanfattning

  • Beslutsfattande eller förgreningssatser används för att välja en väg baserat på resultatet av det utvärderade uttrycket.
  • Det kallas också för kontrollsatser eftersom det styr flödet av exekvering av ett program.
  • "C" anger if, if-else konstruktioner för beslutsfattande uttalanden.
  • Vi kan också kapsla om-annas inom varandra när flera vägar måste testas.
  • else-if-stegen används när vi måste kontrollera olika sätt baserat på resultatet av uttrycket.

Dagligt Guru99-nyhetsbrev

Kickstarta dagen med de senaste och viktigaste AI-nyheterna som levereras just nu.