Declarações de decisão

A tomada de decisão é crítica para a programação de computadores. Haverá muitas situações em que você terá duas ou mais opções e terá que selecionar uma opção com base nas condições fornecidas. Por exemplo, queremos imprimir um comentário sobre um aluno com base em suas notas garantidas. A seguir está a situação -

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

Agora, a questão é como escrever um código de programação para lidar com tais situações. Quase todas as linguagens de programação fornecem instruções condicionais que funcionam com base no seguinte diagrama de fluxo -

Vamos escrever um programa C com a ajuda de if conditional statements para converter a situação dada acima em um código de programação -

#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 o programa acima é executado, ele produz o seguinte resultado -

Student is average

O programa acima usa if conditional statements. Aqui o primeiroif statementverifica se a condição fornecida, isto é, a variável x é maior que 95 ou não, e se ela acha que a condição é verdadeira, o corpo condicional é inserido para executar as declarações fornecidas. Aqui temos apenas uma instrução printf () para imprimir um comentário sobre o aluno.

Da mesma forma, o segundo if statementtrabalho. Finalmente, o terceiroif statement é executado, aqui temos as seguintes duas condições -

  • A primeira condição é x > 95

  • A segunda condição é x < 30

O computador avalia as condições fornecidas e, em seguida, o resultado geral é combinado com a ajuda do operador binário &&. Se o resultado final for verdadeiro, a instrução condicional será executada; caso contrário, nenhuma instrução será executada.

Este tutorial lhe dará uma idéia básica sobre várias formas de if statements e uma introdução a switchdeclarações disponíveis na linguagem de programação C. Diferentes linguagens de programação fornecem diferentes tipos de instruções de tomada de decisão, mas o conceito básico permanece o mesmo, conforme explicado neste tutorial.

declaração if ... else

A if declaração pode ser seguida por um opcional elseinstrução, que é executada quando a expressão booleana é falsa. A sintaxe de umif...else declaração na linguagem de programação 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 */
}

A sintaxe acima pode ser representada na forma de um diagrama de fluxo, conforme mostrado abaixo -

A if...elsedeclaração é útil quando temos que tomar uma decisão entre duas opções. Por exemplo, se um aluno consegue mais notas do que 95, então o aluno é brilhante, caso contrário, nenhuma situação pode ser codificada, como 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 o programa acima é executado, ele produz o seguinte resultado -

Student is not brilliant

declaração if ... elseif ... else

A if declaração pode ser seguida por um opcional else if...else declaração, que é muito útil para testar várias condições.

Enquanto estiver usando if, else if, else declarações, há alguns pontos a serem considerados -

  • A if pode ter zero ou um else's e deve vir depois de um else if.

  • A if pode ter de zero a muitos else…if's e eles devem vir antes do else.

  • Uma vez else…if tem sucesso, nenhum dos restantes else…if's ou else's será testado.

A sintaxe de um if...else if...else declaração na linguagem de programação 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 */
}

Agora com a ajuda de if...elseif...else declaração, o primeiro programa pode ser codificado da seguinte forma -

#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 o programa acima é executado, ele produz o seguinte resultado -

Student is average

A declaração de mudança

UMA switch declaração é uma alternativa de if statementsque permite que uma variável seja testada quanto à igualdade em relação a uma lista de valores. Cada valor é chamado decase, e a variável que está sendo ligada é verificada para cada caso de switch. Possui a seguinte sintaxe -

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

o expression usado em um switchdeclaração deve fornecer um valor inteiro, que será comparado para igualdade com casos diferentes fornecidos. Sempre que um valor de expressão corresponde a um valor de caso, o corpo desse caso será executado e, finalmente, a troca será encerrada usando umbreakdeclaração. Se nenhuma instrução break for fornecida, o computador continuará executando outras instruções disponíveis abaixo para o caso correspondente. Se nenhum dos casos corresponder, o corpo do caso padrão será executado.

A sintaxe acima pode ser representada na forma de um diagrama de fluxo, conforme mostrado abaixo -

Agora, vamos considerar outro exemplo em que queremos escrever a palavra inglesa equivalente para um determinado número. Então, ele pode ser codificado da seguinte forma -

#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 o programa acima é executado, ele produz o seguinte resultado -

Two

Decisões em Java

A seguir está o programa equivalente escrito em Java que também suporta if, if...else, if...elseif...else, e switch afirmações.

Você pode tentar executar o programa a seguir para ver a saída, que deve ser idêntica ao resultado gerado pelo exemplo C acima.

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 o programa acima é executado, ele produz o seguinte resultado -

Student is average

Decisões em Python

A seguir está o programa equivalente escrito em Python. Python forneceif, if...else, if...elif...else, e switchafirmações. Aqui, você deve notar que o Python não faz uso de chaves para o corpo condicional, em vez disso, ele simplesmente identifica o corpo do bloco usando o recuo das instruções.

Você pode tentar executar o seguinte programa para ver a saída -

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 o programa acima é executado, ele produz o seguinte resultado -

Student is average
The end