A cláusula else é opcional.
Se a expressão condicional for verdadeira, as instruções dentro do if será executado. Caso contrário, se houver, as instruções do else será executado.
Nunca ambos serão executados.
A expressão condicional que controla if deve produzir um resultado booleano.
Exemplo: para demonstrar if e outras instruções de controle, será criado um jogo de adivinhação simples. Na primeira versão do jogo, o programa pede ao jogador uma letra entre A e Z. Se o jogador pressionar a letra correta no teclado, o programa exibirá a mensagem Right.
Esse programa interage com o jogador e lê um caractere no teclado.
Usando uma instrução if, ele compara o caractere com a resposta (K).
Se K for inserido, a mensagem Right será exibida. O K deve ser inserido em maiúscula para o programa funcionar corretamente (Java diferencia maiúscula e minúscula).
Exemplo: a próxima versão usa else para exibir uma mensagem quando a letra errada é escolhida.
** Ifs aninhados**
Um if aninhado é uma instrução if que é alvo de outro if ou else.
Ifs aninhados são muito comuns em programação.
Em Java, uma instrução else sempre se refere à instrução if mais próxima dentro do mesmo bloco que ainda não estiver associada a um else.
O else final não está associado a if(j < 20) porque não está no mesmo bloco.
O else final está associado a if(i == 10).
O else interno é referente a if(k > 100) porque é o if mais próximo dentro do mesmo bloco.
Exemplo: um if será adicionado para melhorar o jogo de adivinhação fornecendo ao jogador uma explicação sobre um palpite errado.
A escada if-else-if
Uma estrutura de programação comum baseada no if aninhado é a escada if-else-if.
As expressões condicionais são avaliadas de cima para baixo.
Quando uma condição verdadeira é encontrada, a instrução associada é executada e o resto da escada é ignorado.
Se nenhuma condição for verdadeira, a instrução else final será executada.
O else final frequentemente age como uma condição padrão.
Se não houver um else final e todas as condições forem falsas, nenhuma ação será executada.
O programa produz a saída abaixo:
x is not between 1 and 4
x is one
x is two
x is three
x is four
x is not between 1 and 4