Diferente de muitas linguagens, a linguagem JAVA permite desde a versão 1.7 utilizar Strings como controle de fluxo. O exemplo abaixo mostra como podemos utilizar:
String str = "Olá! Está aí?";
switch(str){
case "Tchau":
System.out.println("Tchau");
break;
case "Olá! Está aí?":
System.out.println("Sim, estou");
break;
default:
System.out.println("Não entendi");
}
switch(str){
case "Tchau":
System.out.println("Tchau");
break;
case "Olá! Está aí?":
System.out.println("Sim, estou");
break;
default:
System.out.println("Não entendi");
}
O código acima seria o equivalente ao código abaixo realizado com if-else em cascata, mas é mais elegante utilizar da maneira acima, além de que o bytecode gerado é mais eficiente:
String str = "Olá! Está aí?";
if (str.equals("Tchau")){
System.out.println("Tchau");
if (str.equals("Tchau")){
System.out.println("Tchau");
}else if (str.equals("Olá! Está aí?")){
System.out.println("Sim, estou");
}else{
System.out.println("Não entendi");
}