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, coloque 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
0a graus, 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.
Mas o exemplo acima também é interessante porque podemos tornar o código um pouco mais simples omitindo as chaves:
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");
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");
Todos esses três exemplos são equivalentes.
2. Nuances do elsebloco
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 |
|---|---|
|
|
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 ageé 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
}
}
GO TO FULL VERSION