1. Sequência de if
declaraçõ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
20
graus, coloque uma camisa - Se a temperatura for maior que
10
graus e menor que (ou igual a)20
, coloque um suéter - Se a temperatura for maior que
0
graus e menor que (ou igual a)10
, coloque uma capa de chuva - Se a temperatura for inferior
0
a 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-else
as 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 else
bloco
Se não usar chaves em uma if-else
construção, o else
refere-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 else
bloqueio e a declaração "Você não precisa trabalhar" estão associados à segunda if
declaração (a mais próxima).
No código à direita, os associados if
e else
estã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-else
declaração
Já que exploramos if-else
tã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
}
}