Istruzione condizionale C: IF, IF Else e Annidato IF Else con esempio

Sommario:

Anonim

Cos'è una dichiarazione condizionale in C?

Le istruzioni condizionali nella programmazione C vengono utilizzate per prendere decisioni in base alle condizioni. Le istruzioni condizionali vengono eseguite in sequenza quando non sono presenti condizioni attorno alle istruzioni. Se metti 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'aiuto dei seguenti due costrutti:

1. If dichiarazione

2. Istruzione If-else

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

In questo tutorial imparerai-

  • Cos'è una dichiarazione condizionale?
  • If dichiarazione
  • Operatori relazionali
  • L'istruzione If-Else
  • Espressioni condizionali
  • Dichiarazioni If-else annidate
  • Istruzioni Else-if annidate

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 per l'istruzione if è la seguente:

 if (condition)instruction; 

La condizione restituisce true o false. 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 seguente programma illustra l'uso del costrutto if nella programmazione 'C':

#includeint main(){int num1=1;int num2=2;if(num1

Produzione:

num1 is smaller than num2

Il programma precedente illustra l'uso del costrutto if per controllare l'uguaglianza di due numeri.

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

Operatori relazionali

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

<= minore o uguale a

> maggiore di

> = maggiore o uguale a

== uguale a

! = non uguale a

Si noti che il test di uguale (==) è 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!");}

Produzione :

 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");

Produzione :

There is someone present in the classroom 

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 al di fuori del blocco di If.

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

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

Iniziamo.

#includeint 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

  1. Abbiamo inizializzato una variabile con valore 19. Dobbiamo scoprire se il numero è maggiore o minore di 10 utilizzando un programma "C". Per fare questo, abbiamo usato 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 di test diventa falso. 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 sarà da un altro blocco che è "Il valore è maggiore di 10". Dopo if-else, il programma terminerà con un risultato positivo.

Nella programmazione 'C' possiamo usare più costrutti if-else l'uno nell'altro che sono indicati come annidamento di istruzioni if-else.

Espressioni condizionali

C'è un altro modo per esprimere un'istruzione if-else è introdurre l' operatore ?: . In un'espressione condizionale l' operatore ?: Ha una sola istruzione associata a if e else.

Per esempio:

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

Produzione :

y =2

Dichiarazioni If-else annidate

Quando è necessaria una serie di decisioni, viene utilizzato if-else annidato. Annidare significa usare un costrutto if-else all'interno di un altro.

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

#includeint 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 è minore o maggiore di 10 e stampa il risultato usando il costrutto if-else annidato.

  1. In primo luogo, abbiamo dichiarato una variabile num con valore come 1. Quindi abbiamo usato il costrutto if-else.
  2. Nel if-else esterno, la condizione fornita controlla se un numero è minore di 10. Se la condizione è vera allora e solo allora eseguirà il ciclo 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, elaborerà il blocco If altrimenti elaborerà un altro blocco. In questo caso, la condizione è vera quindi il blocco If a viene eseguito e il valore viene stampato sullo schermo di output.
  4. Il programma precedente stamperà il valore di una variabile e uscirà con successo.

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

NOTA: In if-else annidato, dobbiamo stare attenti al rientro perché più costrutti if-else sono coinvolti in questo processo, quindi diventa difficile capire i singoli costrutti. Una corretta indentazione facilita la lettura del programma.

Istruzioni Else-if annidate

Nidificato else-if viene utilizzato quando sono necessarie decisioni multipath.

La sintassi generale di come vengono costruiti i ladder 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 è noto come la scala else-if. Questa catena generalmente sembra una scala, quindi è anche chiamata scala else-if. Le espressioni di test vengono valutate dall'alto verso il basso. Ogni volta che viene trovata una vera espressione di prova, viene eseguita l'istruzione ad essa associata. Quando tutte le n espressioni di prova diventano false, viene eseguita l'istruzione else predefinita.

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

#includeint 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 di cui sopra stampa il voto secondo i voti ottenuti in una prova. Abbiamo utilizzato il costrutto ladder else-if nel programma precedente.

  1. Abbiamo inizializzato una variabile con segni. Nella struttura della scala else-if, abbiamo fornito varie condizioni.
  2. Il valore dei contrassegni della variabile verrà confrontato con la prima condizione poiché è vero l'istruzione ad esso associata verrà stampata nella schermata di output.
  3. Se la prima condizione di test risulta falsa, viene confrontata con la seconda condizione.
  4. Questo processo continuerà fino a quando non verrà valutata l'espressione all, altrimenti il ​​controllo uscirà dal ladder else-if e verrà stampata l'istruzione predefinita.

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

Sommario

  • Il processo decisionale o le istruzioni di ramificazione vengono utilizzati per selezionare un percorso in base al risultato dell'espressione valutata.
  • È anche chiamato come istruzioni di controllo perché controlla il flusso di esecuzione di un programma.
  • "C" fornisce i costrutti if, if-else per le dichiarazioni decisionali.
  • Possiamo anche annidare if-else l'uno nell'altro quando devono essere testati più percorsi.
  • Il ladder else-if viene utilizzato quando dobbiamo controllare vari modi in base al risultato dell'espressione.