Estruturas de controle if / else
A estrutura de controle if (se), é utilizada para executar alguns comandos apenas se a sua condição for true (verdadeira). O else (senão) pode ou não acompanhar o if, mas o else não pode ser usado sozinho, e é utilizado para executar alguns comandos caso a condição do if for false (falso).
Na linguagem Java, esta estrutura pode ser utilizada de diversas maneiras, conforme listadas abaixo.
- Com execução de um bloco de instruções, apenas caso a condição seja atendida:
if(condição) {
// Comandos executados caso a condição verdadeira
}
- Com execução de um bloco de instruções, caso a condição seja atendida, e com um fluxo alternativo para os casos de condição não atendida:
if(condição) {
// Comandos executados caso a condição verdadeira.
} else {
// Comandos executados caso a condição falsa.
}
- Com múltiplas condições:
if(condição 1) {
// Comandos executados caso a condição 1 verdadeira.
} else if(condição 2) {
// Comandos executados caso a condição 2 verdadeira.
} else if(condição 3) {
// Comandos executados caso a condição 3 verdadeira.
} else {
// Comandos executados caso nenhuma das condições for verdadeira.
}
No vídeo a seguir mostramos passo a passo como você pode usar a estrutura de condição if/else:
Agora vamos praticar mais um pouco, no exemplo a seguir, vamos verificar se o valor da variável idade é maior ou igual a 18, caso a condição seja verdadeira então entra no bloco do if, caso contrário entra no bloco do else.
/**
* Exemplo de estrutura de controle if.
*/
public class ExemploIf {
public static void main(String[] args) {
int idade = 15;
if(idade >= 18) {
System.out.println("Permissão para dirigir");
} else {
System.out.println("Idade minima para dirigir eh 18 anos.");
}
}
}
Quando executarmos a classe ExemploIf, temos a seguinte saída no console:
C:\>javac ExemploIf.java
C:\>java ExemploIf
Idade minima para dirigir eh 18 anos.
Dentro de um bloco { } do if / else pode ser utilizado outras variáveis declaradas no método ou declarados dentro do bloco, mas estas variáveis podem apenas ser utilizadas dentro deste próprio bloco, por exemplo:
/**
* Exemplo de estrutura de controle if.
*/
public class ExemploIf2 {
public static void main(String[] args) {
int valor = 10;
if(valor > 9) {
int xpto = 10;
} else {
xpto = 11; // Erro de compilação.
}
xpto = 12; // Erro de compilação.
}
}
Se tentarmos compilar a classe ExemploIf2, teremos os seguintes erros:
C:\>javac ExemploIf2.java
ExemploIf2.java:11: cannot find symbol
symbol : variable xpto
location: class ExemploIf2
xpto = 11;
^
ExemploIf2.java:14: cannot find symbol
symbol : variable xpto
location: class ExemploIf2
xpto = 12;
^
2 errors
Neste caso é criado uma variável chamada xpto dentro do bloco do if, então esta variável pode ser utilizada somente dentro do if, não pode ser usada no else e nem fora do bloco.
Observação: este conceito de variáveis criadas dentro de blocos { }, funciona para todos os blocos.