C Betinget erklæring: IF, IF Else og Nested IF Else med eksempel

Hva er en betinget erklæring i C?

Betingede erklæringer i C programmering brukes til å ta beslutninger basert på forholdene. Betingede setninger kjøres sekvensielt når det ikke er noen betingelse rundt setningene. Hvis du setter en betingelse for en blokk med setninger, kan utførelsesflyten endres basert på resultatet som er evaluert av betingelsen. Denne prosessen kalles beslutningstaking i 'C.'

I 'C'-programmering er betingede utsagn mulig ved hjelp av følgende to konstruksjoner:

1. Hvis uttalelse

2. If-else-uttalelse

Det kalles også forgrening ettersom et program bestemmer hvilken setning som skal utføres basert på resultatet av den evaluerte tilstanden.

Hvis uttalelse

Det er en av de kraftige betingede uttalelsene. If-setningen er ansvarlig for å endre flyten av utførelse av et program. If-setning brukes alltid med en betingelse. Tilstanden evalueres først før du utfører en setning i brødteksten til If. Syntaksen for if-setningen er som følger:

 if (condition) 
     instruction;

Tilstanden evalueres til enten sann eller usann. True er alltid en verdi som ikke er null, og usann er en verdi som inneholder null. Instruksjoner kan være en enkelt instruksjon eller en kodeblokk omsluttet av krøllete klammeparenteser { }.

Følgende program illustrerer bruken av if-konstruksjon 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;
}

Utgang:

num1 is smaller than num2

Programmet ovenfor illustrerer bruken av if-konstruksjon for å kontrollere likheten mellom to tall.

Hvis uttalelse

  1. I programmet ovenfor har vi initialisert to variabler med num1, num2 med verdi som henholdsvis 1, 2.
  2. Deretter har vi brukt if med et testuttrykk for å sjekke hvilket tall som er det minste og hvilket tall som er størst. Vi har brukt et relasjonsuttrykk i if construct. Siden verdien av num1 er mindre enn num2, vil betingelsen evalueres til sann.
  3. Dermed vil den skrive ut setningen inne i blokken til If. Etter det vil kontrollen gå utenfor blokken og programmet vil bli avsluttet med et vellykket resultat.

Relasjonelt Operatorer

C har seks relasjonsoperatorer som kan brukes til å formulere et boolsk uttrykk for å ta en beslutning og testbetingelser, som returnerer sant eller usant:

< mindre enn

<= mindre enn eller lik

> større enn

>= større enn eller lik

== lik

!= ikke lik

Legg merke til at den likeverdige testen (==) er forskjellig fra oppgaveoperatøren (=) fordi det er et av de vanligste problemene en programmerer møter ved å blande dem sammen.

For eksempel:

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

Utgang:

 You succeed

Husk at en tilstand som evalueres til en verdi som ikke er null anses som sann.

For eksempel:

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

Utgang:

There is someone present in the classroom

If-Else-uttalelsen

If-Else-erklæringen

If-else is-setningen er en utvidet versjon av If. Den generelle formen for if-else er som følger:

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

n denne typen konstruksjon, hvis verdien av test-uttrykk er sann, vil den sanne blokken av setninger bli utført. Hvis verdien av test-uttrykk er falsk, vil den falske blokken med setninger bli utført. I alle fall, etter utførelsen, vil kontrollen automatisk overføres til setningene som vises utenfor blokken til If.

Følgende programmer illustrerer bruken av if-else-konstruksjonen:


Vi vil initialisere en variabel med en viss verdi og skrive et program for å finne ut om verdien er mindre enn ti eller større enn ti.

La oss begynne.

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

Utgang:

The value is greater than 10

If-Else-erklæringen

  1. Vi har initialisert en variabel med verdi 19. Vi må finne ut om tallet er større eller mindre enn 10 ved å bruke et 'C'-program. For å gjøre dette har vi brukt if-else-konstruksjonen.
  2. Her har vi gitt en betingelse num<10 fordi vi må sammenligne verdien med 10.
  3. Som du kan se er den første blokken alltid en sann blokk, noe som betyr at hvis verdien av testuttrykk er sann, vil den første blokken som er If, bli utført.
  4. Den andre blokken er en annen blokk. Denne blokken inneholder setningene som vil bli utført hvis verdien av testuttrykket blir usann. I vårt program er verdien av num større enn ti, derfor blir testbetingelsen falsk og ellers blir blokken utført. Dermed vil utgangen vår være fra en annen blokk som er "Verdien er større enn 10". Etter if-else vil programmet avsluttes med et vellykket resultat.

I 'C'-programmering kan vi bruke flere if-else-konstruksjoner i hverandre som omtales som nesting av if-else-setninger.

Betingede uttrykk

Det er en annen måte å uttrykke en if-else-utsagn på ved å introdusere ?: operatør. I et betinget uttrykk ?: operatøren har bare én setning knyttet til hvis og den andre.

For eksempel:

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

Utgang:

y =2

Nestede If-else-erklæringer

Når det kreves en rekke avgjørelser, brukes nestet if-else. Nesting betyr å bruke en if-else-konstruksjon i en annen.

La oss skrive et program for å illustrere bruken av nestet 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;
}

Utgang:

The value is:1

Programmet ovenfor sjekker om et tall er mindre eller større enn 10 og skriver ut resultatet ved å bruke nestet if-else-konstruksjon.

Nestede If-else-erklæringer

  1. For det første har vi deklarert en variabel num med verdi som 1. Deretter har vi brukt if-else konstruksjon.
  2. I den ytre if-else sjekker betingelsen som er gitt om et tall er mindre enn 10. Hvis betingelsen er sann da, og først da, vil den utføre indre løkke. I dette tilfellet er betingelsen sann, og derfor behandles den indre blokken.
  3. I den indre blokken har vi igjen en betingelse som sjekker om variabelen vår inneholder verdien 1 eller ikke. Når en betingelse er sann, vil den behandle If-blokken, ellers vil den behandle en annen blokk. I dette tilfellet er betingelsen sann, og derfor er Hvis en blokk utført og verdien skrives ut på utdataskjermen.
  4. Programmet ovenfor vil skrive ut verdien av a variabel og avslutte med suksess.

Prøv å endre verdien på variabelen for å se hvordan programmet oppfører seg.

NOTAT: I nestet if-else må vi være forsiktige med innrykk fordi flere if-else-konstruksjoner er involvert i denne prosessen, så det blir vanskelig å finne ut individuelle konstruksjoner. Riktig innrykk gjør det enkelt å lese programmet.

Nestede Else-if-utsagn

Nested else-if brukes når flerveisbeslutninger kreves.

Den generelle syntaksen for hvordan else-if-stiger er konstruert i 'C'-programmering er som følger:

 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;

Denne typen struktur er kjent som else-if-stigen. Denne kjeden ser generelt ut som en stige, derfor kalles den også en else-if-stige. Testuttrykkene blir evaluert fra topp til bunn. Når et ekte testuttrykk blir funnet, kjøres setningen knyttet til den. Når alle de n testuttrykkene blir falske, blir standard else-setningen utført.

La oss se selve arbeidet ved hjelp av et 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;
}

Utgang:

First class

Programmet ovenfor skriver ut karakteren i henhold til karakterene i en test. Vi har brukt else-if-stigekonstruksjonen i programmet ovenfor.

Nestede Else-if-utsagn

  1. Vi har initialisert en variabel med merker. I else-if-stigestrukturen har vi gitt ulike forhold.
  2. Verdien fra variabelmerkene vil bli sammenlignet med den første betingelsen siden det er sant at setningen knyttet til den vil bli skrevet ut på utdataskjermen.
  3. Hvis den første testbetingelsen viser seg å være falsk, sammenlignes den med den andre tilstanden.
  4. Denne prosessen vil fortsette til alt uttrykket er evaluert ellers vil kontrollen gå ut av else-if-stigen, og standardsetningen vil bli skrevet ut.

Prøv å endre verdien og legg merke til endringen i utgangen.

Oppsummering

  • Beslutningstaking eller forgreningsutsagn brukes til å velge én vei basert på resultatet av det evaluerte uttrykket.
  • Det kalles også som kontrollsetninger fordi det kontrollerer kjøringen av et program.
  • 'C' gir if, if-else konstruksjoner for beslutningsuttalelser.
  • Vi kan også hekke if-else i hverandre når flere baner må testes.
  • else-if-stigen brukes når vi skal sjekke ulike måter basert på resultatet av uttrykket.