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.

Postagens mais visitadas deste blog

Teste Driven Development ou TDD, o que é?

Vamos falar sobre Banco de Dados