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.

Sintesi

  • 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.

Riassumi questo post con: