Fall Through em Java: O que é?
Em Java, o Fall Through está associado ao switch-case. Fall Through é uma condição na qual cada case não possui nenhuma instrução break. Vale ressaltar aqui que em um switch o break não é obrigatório, mas é um bom hábito (Existem divergências quanto a isso, mas deixemos esse assunto para outro momento). O break indica o fim do case e a falta dele leva a execução de outro case, e mais outro, e outro até o fim do switch, ou o encontro de um break. Em resumo, a falta da instrução break fará com que se execute todas as instruções após a primeira correspondência (Independente se as correspondências posteriores são verdadeiras ou falsas).
Sintaxe:
switch (expressão) {
case valor1:
//declaração
case valor2:
//declaração
case valor3:
//declaração
default:
//declaração
}
Vamos entender isso em um código?
FallThroughExample1.java:
public class FallThroughExample1 {
public static void main(String[] args) {
String fruta = "banana";
System.out.println("Fruta informada: " + fruta);
switch (fruta) {
case "pera":
System.out.println("Pêra!");
case "uva":
System.out.println("Uva!");
case "banana":
System.out.println("Banana!");
case "maca":
System.out.println("Maçã!");
default:
System.out.println("Fruta inválida.");
}
}
}
Output:
Fruta informada: banana
Banana!
Maçã!
Fruta inválida.
Percebeu? No código acima a fruta
informada, “banana”, deu match no
terceiro case mas, mesmo os casos
seguintes (“maca” e “default”*), não sendo iguais, ele executou a declaração, ignorando a
condição. Isso ocorreu, pois, a instrução break
não existe. Neste caso temos o fall-through
da instrução switch.
Espero que eu tenha conseguido esclarecer o fall-through. Até a próxima. :)
*: O default,
assim como o break, não é obrigatório. A sua utilização depende de cada
contexto.