if
Sabemos que todo programa tem uma sequência natural. Isto é, programas precisam começar a executar da primeira declaração, e depois ir para a segunda e ir até a última.
Contudo, ao longo do caminho, muitas condições podem forçar o programa a pular para uma outra declaração, ou “voltar” para algum ponto.
Para executar essas funcionalidades, algumas declarações especiais estão projetadas, que chamamos de declarações de controle.
É como na nossa vida, muitas vezes acontece alguma coisa especial e acabamos ajustando a nossa rotina. Por exemplo, algum dia penso em viajar: Se (if) eu tenho 10 dias de férias, eu vou para São Paulo. Mas, se eu tenho 5 dias, eu planejo visitar meu pais que fica mais perto.
Isto é, para onde eu vou depende da quantidades de dias que eu tenho de férias. Para checar essa condição, o Java fornece a declaração “if e else” que é uma das declarações mais populares.
public boolean isGuessCorrect(int playerGuess){
boolean correct = false;
if(playerGuess == givenInt){
System.out.println(“Seu palpite ” + playerGuess + ” está correto!”);
correct = true;
}else if(playerGuess > givenInt){
System.out.println(“Seu palpite ” + playerGuess + ” é maior.”);
}else if(playerGuess < givenInt){
System.out.println(“Seu palpite ” + playerGuess + ” é menor.”);
}
return correct;
}
O método isGuessCorrect da classe Initializer.java necessita de um if porque o resultado de comparação entre o inteiro playerGuess e o givenInt deve ser feita para ver se um é maior, menor ou igual ao outro.
Essas diferentes condições precisam de diferentes códigos. Quando o método isGuessCorrect recebe o parâmetro playerGuess o programa compara com a variável givenInt, a qual recebeu o valor quando o programa iniciou.
else if
Para comparar esses dois valores são utilizados três declarações de if. A primeira verificação sempre deve começar com if, no nosso exemplo temos uma declaração com if e mais duas com else if.
As três declarações poderiam ser com if, mas colocando else if otimiza a verificação. Porque se as três condições tiverem somente if, mesmo que o programa ache o resultado encontrado na primeira declaração o programa irá também procurar nas outras.
Do jeito que está no método isGuessCorrect, por exemplo se a variável givenInt tiver valor 5 e a variável playerGuess também tiver o valor 5, o programa não irá comparar se essas duas variáveis são menor ou maior a outra. Porque na primeira declaração do if já foi preenchida a necessidade procurada.
Podemos ter esse tipo de estrutura:
if(condição 1 é verdadeira){
Faça a ação 1;
}else if(condição 2 é verdadeira){
Faça a ação 2;
}else{
//ambas as condições são falsas
Execute essa ação
}
Veja que agora temos um “if” (se), um “else if” (senão se) e um “else” (senão). O que tem de novo aqui é o else. Essa estrutura serve para quando a declaração precisa executar uma ação de qualquer maneira.
Porque o else é a ação que será tomada se todas as anteriores não forem executadas. No exemplo do método isGuessCorrect tem o mesmo efeito porque está sendo feitas comparações que não tem como não executar uma das três ações.
if Aninhados
Podemos também fazer uma estrutura de if aninhados, que é um if dentro de outro.
1 2 3 4 5 6 7 8 9 10 11 12 |
if(playerGuess == giveInt){ …; correct = true; }else{ if(playerGuess > giveInt){ …; }else{ if(playerGuess <giveInt){ …; } } } |
Essa estrutura de if aninhados apesar de funcionar deixa o código pouco legível, então é uma boa prática evitar esse tipo de estrutura.
Fonte: Learning Java with Games
Deixe um comentário