C Dichiarazione condizionale: IF, IF Else e Nested IF Else con esempio

Cos'è un'istruzione condizionale in C?

Dichiarazioni condizionali in C la programmazione viene utilizzata per prendere decisioni in base alle condizioni. Le istruzioni condizionali vengono eseguite in sequenza quando non sono presenti condizioni attorno alle istruzioni. Se inserisci una condizione per un blocco di istruzioni, il flusso di esecuzione potrebbe cambiare in base al risultato valutato dalla condizione. Questo processo è chiamato processo decisionale in 'C.'

Nella programmazione 'C' le istruzioni condizionali sono possibili con l'ausilio dei due seguenti costrutti:

1. Se istruzione

2. Istruzione if-else

Viene anche chiamata ramificazione poiché un programma decide quale istruzione eseguire in base al risultato della condizione valutata.

If dichiarazione

È una delle potenti affermazioni condizionali. L'istruzione If è responsabile della modifica del flusso di esecuzione di un programma. L'istruzione If viene sempre utilizzata con una condizione. La condizione viene valutata prima di eseguire qualsiasi istruzione all'interno del corpo di If. La sintassi dell'istruzione if è la seguente:

 if (condition) 
     instruction;

La condizione restituisce vero o falso. True è sempre un valore diverso da zero e false è un valore che contiene zero. Le istruzioni possono essere una singola istruzione o un blocco di codice racchiuso tra parentesi graffe { }.

Il programma seguente illustra l'uso del costrutto if nella programmazione 'C':

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

Produzione:

num1 is smaller than num2

Il programma sopra illustra l'uso del costrutto if per verificare l'uguaglianza di due numeri.

Istruzione If

  1. Nel programma precedente, abbiamo inizializzato due variabili con num1, num2 con valore rispettivamente 1, 2.
  2. Quindi, abbiamo utilizzato if con un'espressione di test per verificare quale numero è il più piccolo e quale è il più grande. Abbiamo utilizzato un'espressione relazionale nel costrutto if. Poiché il valore di num1 è inferiore a num2, la condizione risulterà vera.
  3. Quindi stamperà l'istruzione all'interno del blocco di If. Successivamente il controllo uscirà dal blocco e il programma verrà terminato con esito positivo.

Relazionale OperaTors

C ha sei operatori relazionali che possono essere utilizzati per formulare un'espressione booleana per prendere una decisione e testare le condizioni, che restituisce vero o falso:

< meno di

<= minore o uguale a

> maggiore di

>= maggiore o uguale a

== uguale a

!= diverso da

Si noti che il test di uguaglianza (==) è diverso dall'operatore di assegnazione (=) perché è uno dei problemi più comuni che un programmatore deve affrontare mescolandoli.

Per esempio:

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

Uscita:

 You succeed

Tieni presente che una condizione che restituisce un valore diverso da zero è considerata vera.

Per esempio:

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

Uscita:

There is someone present in the classroom

La dichiarazione If-Else

L'istruzione If-Else

L'istruzione if-else is è una versione estesa di If. La forma generale di if-else è la seguente:

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

In questo tipo di costrutto, se il valore di test-expression è vero, verrà eseguito il vero blocco di istruzioni. Se il valore di test-expression è falso, verrà eseguito il blocco di istruzioni false. In ogni caso, dopo l'esecuzione, il controllo verrà automaticamente trasferito alle istruzioni che compaiono all'esterno del blocco If.

I programmi seguenti illustrano l'uso del costrutto if-else:


Inizializzeremo una variabile con un certo valore e scriveremo un programma per determinare se il valore è inferiore a dieci o maggiore di dieci.

Iniziamo.

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

Produzione:

The value is greater than 10

L'istruzione If-Else

  1. Abbiamo inizializzato una variabile con valore 19. Dobbiamo scoprire se il numero è maggiore o minore di 10 utilizzando un programma 'C'. Per fare ciò, abbiamo utilizzato il costrutto if-else.
  2. Qui abbiamo fornito una condizione num<10 perché dobbiamo confrontare il nostro valore con 10.
  3. Come puoi vedere, il primo blocco è sempre un blocco vero, il che significa che, se il valore di test-expression è vero, verrà eseguito il primo blocco che è If.
  4. Il secondo blocco è un altro blocco. Questo blocco contiene le istruzioni che verranno eseguite se il valore dell'espressione test diventa false. Nel nostro programma, il valore di num è maggiore di dieci quindi la condizione di test diventa falsa e altrimenti viene eseguito il blocco. Pertanto, il nostro output proverrà da un blocco else che è "Il valore è maggiore di 10". Dopo l'if-else il programma terminerà con esito positivo.

Nella programmazione 'C' possiamo utilizzare più costrutti if-else l'uno nell'altro, definiti annidamento di istruzioni if-else.

Espressioni condizionali

C'è un altro modo per esprimere un'istruzione if-else è introducendo il ?: operatore. In un'espressione condizionale il ?: L'operatore ha solo un'istruzione associata a if e else.

Per esempio:

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

Uscita:

y =2

Istruzioni If-else nidificate

Quando è richiesta una serie di decisioni, viene utilizzato if-else nidificato. Nidificare significa utilizzare un costrutto if-else all'interno di un altro.

Scriviamo un programma per illustrare l'uso di if-else annidato.

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

Produzione:

The value is:1

Il programma precedente controlla se un numero è inferiore o maggiore di 10 e stampa il risultato utilizzando il costrutto if-else nidificato.

Istruzioni If-else nidificate

  1. Innanzitutto, abbiamo dichiarato una variabile num con valore 1. Quindi abbiamo utilizzato il costrutto if-else.
  2. Nell'if-else esterno, la condizione fornita controlla se un numero è inferiore a 10. Se la condizione è vera, allora e solo allora verrà eseguito il comando anello interno. In questo caso la condizione è vera quindi viene elaborato il blocco interno.
  3. Nel blocco interno, abbiamo di nuovo una condizione che controlla se la nostra variabile contiene il valore 1 o meno. Quando una condizione è vera, allora elaborerà il blocco If altrimenti elaborerà un blocco else. In questo caso, la condizione è vera quindi il blocco If viene eseguito e il valore viene stampato sullo schermo di output.
  4. Il programma sopra stamperà il valore di a variabile ed uscire con successo.

Prova a cambiare il valore della variabile per vedere come si comporta il programma.

NOTA: Nell'if-else nidificato, dobbiamo fare attenzione al rientro perché in questo processo sono coinvolti più costrutti if-else, quindi diventa difficile capire i singoli costrutti. Il rientro corretto facilita la lettura del programma.

Istruzioni Else-if nidificate

Else-if nidificato viene utilizzato quando sono richieste decisioni multipercorso.

La sintassi generale di come sono costruite le scale altrimenti-se nella programmazione 'C' è la seguente:

 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;

Questo tipo di struttura è conosciuta come la scala altrimenti se. Questa catena generalmente assomiglia ad una scala, quindi è anche chiamata scala altrimenti se. Le espressioni di test vengono valutate dall'alto verso il basso. Ogni volta che viene trovata un'espressione di test vera, viene eseguita l'istruzione ad essa associata. Quando tutte le n espressioni di test diventano false, viene eseguita l'istruzione else predefinita.

Vediamo il funzionamento effettivo con l'aiuto di un programma.

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

Produzione:

First class

Il programma sopra stampa il voto in base ai voti ottenuti in un test. Abbiamo utilizzato il costrutto ladder else-if nel programma precedente.

Istruzioni altrimenti nidificate

  1. Abbiamo inizializzato una variabile con segni. Nella struttura a scala else-if abbiamo fornito varie condizioni.
  2. Il valore della variabile mark verrà confrontato con la prima condizione poiché è vera l'istruzione ad esso associata verrà stampata sullo schermo di output.
  3. Se la prima condizione di test risulta falsa, viene confrontata con la seconda condizione.
  4. Questo processo continuerà finché non verrà valutata l'espressione completa, altrimenti il ​​controllo uscirà dalla scala else-if e verrà stampata l'istruzione predefinita.

Prova a modificare il valore e nota il cambiamento nell'output.

Sommario

  • Le istruzioni decisionali o di ramificazione vengono utilizzate per selezionare un percorso in base al risultato dell'espressione valutata.
  • Viene anche chiamata istruzione di controllo perché controlla il flusso di esecuzione di un programma.
  • 'C' fornisce costrutti if, if-else per le dichiarazioni decisionali.
  • Possiamo anche nidificare if-else l'uno nell'altro quando è necessario testare più percorsi.
  • La scala else-if viene utilizzata quando dobbiamo verificare vari modi in base al risultato dell'espressione.