Dichiarazioni di decisione

Il processo decisionale è fondamentale per la programmazione del computer. Ci saranno molte situazioni in cui ti verranno fornite due o più opzioni e dovrai selezionare un'opzione in base alle condizioni date. Ad esempio, vogliamo stampare un commento su uno studente in base ai suoi voti garantiti. Di seguito è la situazione:

Assume given marks are x for a student:

If given marks are more than 95, then
Student is brilliant

If given marks are less than 30, then
Student is poor

If given marks are less than 95 and more than 30, then
Student is average

Ora, la domanda è come scrivere un codice di programmazione per gestire tali situazioni. Quasi tutti i linguaggi di programmazione forniscono istruzioni condizionali che funzionano in base al seguente diagramma di flusso:

Scriviamo un programma C con l'aiuto di if conditional statements per convertire la situazione di cui sopra in un codice di programmazione -

#include <stdio.h>

int main() {
   int x = 45;
   
   if( x > 95) {
	
      printf( "Student is brilliant\n");
   }
   if( x < 30) {
	
      printf( "Student is poor\n");
   }
   if( x < 95 && x > 30 ) {
	
      printf( "Student is average\n");
   }
}

Quando il programma di cui sopra viene eseguito, produce il seguente risultato:

Student is average

Il programma sopra utilizza if conditional statements. Ecco, il primoif statementcontrolla se la condizione data, cioè la variabile x è maggiore di 95 o meno e se trova che la condizione è vera, allora il corpo condizionale viene inserito per eseguire le istruzioni date. Qui abbiamo solo un'istruzione printf () per stampare un commento sullo studente.

Allo stesso modo, il secondo if statementlavori. Infine, il terzoif statement viene eseguito, qui abbiamo le seguenti due condizioni:

  • La prima condizione è x > 95

  • La seconda condizione è x < 30

Il computer valuta entrambe le condizioni date e quindi il risultato complessivo viene combinato con l'aiuto dell'operatore binario &&. Se il risultato finale è vero, verrà eseguita l'istruzione condizionale, altrimenti non verrà eseguita nessuna istruzione.

Questo tutorial ti darà un'idea di base su varie forme di if statements e un'introduzione a switchistruzioni disponibili nel linguaggio di programmazione C. Diversi linguaggi di programmazione forniscono diversi tipi di dichiarazioni decisionali, ma il concetto di base rimane lo stesso come spiegato in questo tutorial.

if ... else dichiarazione

Un if l'istruzione può essere seguita da un opzionale elseistruzione, che viene eseguita quando l'espressione booleana è falsa. La sintassi di un fileif...else dichiarazione nel linguaggio di programmazione C è -

if(boolean_expression) {
   
   /* Statement(s) will execute if the boolean expression is true */
} else {
  
  /* Statement(s) will execute if the boolean expression is false */
}

La sintassi sopra può essere rappresentata sotto forma di un diagramma di flusso come mostrato di seguito -

Un if...elseè utile quando dobbiamo prendere una decisione tra due opzioni. Ad esempio, se uno studente ottiene più voti di 95, lo studente è brillante, altrimenti nessuna situazione del genere può essere codificata, come segue:

#include <stdio.h>

int main() {
   int x = 45;
   
   if( x > 95) {
	
      printf( "Student is brilliant\n");
   } else {
      printf( "Student is not brilliant\n");
   }
}

Quando il programma di cui sopra viene eseguito, produce il seguente risultato:

Student is not brilliant

if ... elseif ... else dichiarazione

Un if l'istruzione può essere seguita da un opzionale else if...else dichiarazione, che è molto utile per testare varie condizioni.

Durante l'utilizzo if, else if, else dichiarazioni, ci sono alcuni punti da tenere a mente:

  • Un if può avere zero o uno else's e deve venire dopo un else if.

  • Un if può avere da zero a molti else…if's e devono venire prima del else.

  • Una volta un file else…if riesce, nessuno dei restanti else…if's o else's sarà testato.

La sintassi di un file if...else if...else dichiarazione nel linguaggio di programmazione C è -

if(boolean_expression 1) {

   /* Executes when the boolean expression 1 is true */
}
else if( boolean_expression 2) {

   /* Executes when the boolean expression 2 is true */
}
else if( boolean_expression 3) {

   /* Executes when the boolean expression 3 is true */
} else {
   
   /* Executes when the none of the above condition is true */
}

Ora con l'aiuto di if...elseif...else dichiarazione, il primo programma può essere codificato come segue:

#include <stdio.h>

int main() {
   int x = 45;
   
   if( x > 95) {
      printf( "Student is brilliant\n");
   } 
   else if( x < 30) {
      printf( "Student is poor\n");
   } 
   else if( x < 95 && x > 30 ) {
      printf( "Student is average\n");
   }
}

Quando il programma di cui sopra viene eseguito, produce il seguente risultato:

Student is average

La dichiarazione Switch

UN switch L'istruzione è un'alternativa a if statementsche consente di verificare l'uguaglianza di una variabile rispetto a un elenco di valori. Ogni valore è chiamato acasee la variabile da attivare viene controllata per ogni caso di interruttore. Ha la seguente sintassi:

switch(expression){
   case ONE :
      statement(s);
      break;
   case TWO:
      statement(s);
      break;
   ......
   
   default :
      statement(s);
}

Il expression utilizzato in a switchL'istruzione deve fornire un valore intero, che verrà confrontato per l'uguaglianza con i diversi casi forniti. Ogni volta che il valore di un'espressione corrisponde a un valore di case, il corpo di quel case verrà eseguito e, infine, lo switch verrà terminato utilizzando unbreakdichiarazione. Se non vengono fornite istruzioni break, il computer continua a eseguire altre istruzioni disponibili di seguito per il caso corrispondente. Se nessuno dei casi corrisponde, viene eseguito il corpo del caso predefinito.

La sintassi sopra può essere rappresentata sotto forma di un diagramma di flusso come mostrato di seguito -

Ora, consideriamo un altro esempio in cui vogliamo scrivere la parola inglese equivalente per un dato numero. Quindi, può essere codificato come segue:

#include <stdio.h>

int main() {
   int x = 2;
   
   switch( x ){
      case 1 :
         printf( "One\n");
         break;
      case 2 :
         printf( "Two\n");
         break;
      case 3 :
         printf( "Three\n");
         break;
      case 4 :
         printf( "Four\n");
         break;
      default :
         printf( "None of the above...\n");
   }
}

Quando il programma di cui sopra viene eseguito, produce il seguente risultato:

Two

Decisioni in Java

Di seguito è riportato il programma equivalente scritto in Java che anch'esso supporta if, if...else, if...elseif...else, e switch dichiarazioni.

Puoi provare ad eseguire il seguente programma per vedere l'output, che deve essere identico al risultato generato dall'esempio C sopra.

public class DemoJava {
   public static void main(String []args) {
      int x = 45;
   
      if( x > 95) {
         System.out.println( "Student is brilliant");
      } 
      else if( x < 30) {
         System.out.println( "Student is poor");
      } 
      else if( x < 95 && x > 30 ) {
         System.out.println( "Student is average");
      }
   }
}

Quando il programma di cui sopra viene eseguito, produce il seguente risultato:

Student is average

Decisioni in Python

Di seguito è riportato il programma equivalente scritto in Python. Python fornisceif, if...else, if...elif...else, e switchdichiarazioni. Qui, devi notare che Python non fa uso di parentesi graffe per il corpo condizionale, invece identifica semplicemente il corpo del blocco usando l'indentazione delle istruzioni.

Puoi provare a eseguire il seguente programma per vedere l'output:

x = 45

if x > 95:
   print "Student is brilliant"
elif x < 30:
   print "Student is poor"
elif x < 95 and x > 30:
   print "Student is average"

print "The end"

Quando il programma di cui sopra viene eseguito, produce il seguente risultato:

Student is average
The end