CodeGym /Cursos /All lectures for PT purposes /As nuances do operador condicional

As nuances do operador condicional

All lectures for PT purposes
Nível 1 , Lição 7
Disponível

1. Sequência de ifdeclarações

Às vezes, um programa precisa executar muitas ações diferentes, dependendo do valor de uma variável ou de uma expressão.

Digamos que nossa tarefa seja algo assim:

  • Se a temperatura for superior a 20graus, vista uma camisa
  • Se a temperatura for maior que 10graus e menor que (ou igual a) 20, coloque um suéter
  • Se a temperatura for maior que 0graus e menor que (ou igual a) 10, coloque uma capa de chuva
  • Se a temperatura for inferior a 0graus, coloque um casaco.

Veja como isso pode ser representado no código:

int temperature = 9;

if (temperature > 20) {
   System.out.println("put on a shirt");
} else { // Here the temperature is less than (or equal to) 20
   if (temperature > 10) {
      System.out.println("put on a sweater");
   } else { // Here the temperature is less than (or equal to) 10
      if (temperature > 0) {
         System.out.println("put on a raincoat");
      } else // Here the temperature is less than 0
         System.out.println("put on a coat");
   }
}

If-elseas instruções podem ser aninhadas umas nas outras . Isso torna possível implementar uma lógica bastante complexa em um programa.

No entanto, os programadores geralmente escrevem essa construção de maneira um pouco diferente:

int temperature = 9;

if (temperature > 20) {
   System.out.println("put on a shirt");
} else if (temperature > 10) { // Here the temperature is less than (or equal to) 20
   System.out.println("put on a sweater");
} else if (temperature > 0) { // Here the temperature is less than (or equal to) 10
   System.out.println("put on a raincoat");
} else { // Here the temperature is less than 0
   System.out.println("put on a coat");
}

Os dois exemplos dados são equivalentes, mas o segundo é mais fácil de entender.


2. Nuances do elsebloco

Um ponto importante:

Se não usar chaves em uma if-elseconstrução, o elserefere-se ao anterior mais próximo if.

Exemplo:

Nosso código Como vai funcionar
int age = 65;

if (age < 60)
   if (age > 20)
      System.out.println("You must work");
else
   System.out.println("You don't have to work");
int age = 65;

if (age < 60) {
   if (age > 20)
     System.out.println("You must work");
   else
     System.out.println("You don't have to work");
}

Se você observar o código à esquerda, parece que a saída da tela será "Você não precisa trabalhar". Mas esse não é o caso. Na realidade, o elsebloqueio e a declaração "Você não precisa trabalhar" estão associados à segunda ifdeclaração (a mais próxima).

No código à direita, os associados ife elseestão destacados em vermelho. Além disso, as chaves são colocadas de forma inequívoca, mostrando claramente quais ações serão executadas. A string Você não precisa trabalhar nunca é exibida quando agefor maior que 60.



3. Exemplo de uso de uma if-elsedeclaração

Já que exploramos if-elsetão bem a afirmação, vamos dar um exemplo:

import java.util.Scanner;
public class Solution {
   public static void main(String[] args) {
     Scanner console = new Scanner(System.in); // Create a Scanner object
     int a = console.nextInt(); // Read the first number from the keyboard
     int b = console.nextInt(); // Read the second number from the keyboard
     if (a < b)                   // If a is less than b
       System.out.println(a);     // we display a
     else                         // otherwise
       System.out.println(b);     // we display b
   }
}
Exibindo o mínimo de dois números
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION