A declaração if-then
Frequentemente, queremos apenas executar um bloco de código sob certas circunstâncias. A instrução if-then, como mostra a Figura 2.2, faz isso permitindo que nosso aplicativo execute um determinado bloco de código se e somente se uma expressão booleana for avaliada como true no tempo de execução.
Por exemplo, imagine que tenhamos uma função que usou a hora do dia, um valor inteiro de 0 a 23, para exibir uma mensagem para o usuário:
if(hourOfDay < 11)
System.out.println("Good Morning");
Se a hora do dia for menor que 11, a mensagem será exibida. Agora, digamos que também desejamos incrementar algum valor, morningGreetingCount, toda vez que a saudação for impressa. Poderíamos escrever a declaração if-then duas vezes, mas, felizmente, Java nos oferece uma abordagem mais natural usando um bloco:
if(hourOfDay < 11) {
System.out.println("Good Morning");
morningGreetingCount++;
}
O bloco permite que várias instruções sejam executadas com base na avaliação if-then.
Observe que a primeira declaração não continha um bloco ao redor da seção de impressão, mas facilmente poderia ter ocorrido. Para facilitar a leitura, é considerado uma boa prática de codificação colocar blocos em torno do componente de execução de instruções if-then, bem como muitas outras instruções de fluxo de controle, embora não seja necessário.
Veja identação e chaves
Uma área que os redatores do exame tentarão enganar você está em declarações if-then sem chaves ({}). Por exemplo, dê uma olhada nesta forma ligeiramente modificada do nosso exemplo:
if(hourOfDay < 11)
System.out.println("Good Morning");
morningGreetingCount++;
Com base no recuo, você pode estar induzido a pensar que a variável morningGreetingCount só será incrementada se o hourOfDay for menor que 11, mas não é o que esse código faz. Ele executará a declaração de impressão somente se a condição for atendida, mas sempre executará a operação de incremento.
Lembre-se de que, em Java, ao contrário de outras linguagens de programação, as tabulações são apenas espaços em branco e não são avaliadas como parte da execução. Quando você ver uma instrução de fluxo de controle em uma pergunta, certifique-se de rastrear as chaves de abertura e fechamento do bloco e ignore qualquer recuo que possa encontrar.