Funções em Java: Como usar switch-case?
As funções em Java são caracterizadas como blocos de códigos que realizam instruções específicas. Dentre essas funções, há as estruturas de controle de fluxo, que são ferramentas utilizadas na programação para modificar o fluxo unidirecional da informação dentro dos blocos de código.
O programa ganha eficiência ao utilizar tais ferramentas devido a possibilidade de tomada de decisão baseada na entrada do usuário e repetição de ações.
Uma situação comum no dia a dia do programador é apresentar diversas opções de escolha ao usuário final, por exemplo um menu de restaurante, para que essas escolhas resultem em ações diferentes dentro do código.
Entre essas ações, por exemplo, está a possibilidade de seguir para a finalização do pedido ou retornar ao menu inicial para outra seleção de item.
Uma das implementações que nos auxilia nessas situações é o switch-case. Nesse artigo, exploraremos como utilizá-lo na linguagem de programação Java.
Em Java, é possível utilizar como entrada do switch-case os seguintes tipos de dados: byte, short, char, int, Enum, String, Character, Byte, Short e Integer.
Os últimos são classes especiais que incorporam os tipos primitivos, para conhecer mais sobre os tipos de dados consulte a documentação oficial.
Sintaxe
Em Java, a sintaxe do switch-case é a seguinte:
int option = 2;
switch (option) {
case 1:
System.out.println("Opção 1");
break;
case 2:
System.out.println("Opção 2");
break;
case 3:
System.out.println("Opção 3");
break;
default:
System.out.println("Nenhuma opção entre 1 e 3");
}
Essas seriam as saídas do código apresentado:
option = 1
Opção 1
option = 2
Opção 2
option = 3
Opção 3
option = 4
Nenhuma opção entre 1 e 3
Diagrama de funcionamento do switch-case
A lógica por trás do switch-case é realizar um bloco de código para cada opção selecionada, conforme o diagrama abaixo:
Break
Quando o bloco de código foi executado com sucesso, o switch-case quebra o fluxo através da palavra break. Sem ele, o código continua a executar todas as instruções que estão abaixo da opção escolhida.
Veja no exemplo de código incorreto a seguir:
public class Weekdays{
public static void main(String[] args) {
int day = 2;
System.out.println("Dias da Semana:");
switch (day) {
case 1:
System.out.println("Domingo");
case 2:
System.out.println("Segunda-feira");
case 3:
System.out.println("Terça-feira");
case 4:
System.out.println("Quarta-feira");
case 5:
System.out.println("Quinta-feira");
case 6:
System.out.println("Sexta-feira");
case 7:
System.out.println("Sábado");
default:
System.out.println("Nenhum dia foi selecionado");
}
}
}
Ao selecionar a opção “2”, o resultado desse código seria o seguinte:
Dias da Semana:
Segunda-feira
Terça-feira
Quarta-feira
Quinta-feira
Sexta-feira
Sábado
Nenhum dia foi selecionado
Default
O Default entrega uma saída para todos os valores que não são correspondentes a nenhuma das opções escritas no case.
Qual a diferença entre if-else e switch-case?
Ambas são estruturas de controle de fluxo e tomada de decisão. Entretanto, o uso do if-else é recomendado quando deseja-se conferir uma faixa de condições ou valores, enquanto o switch-case aceita apenas um único valor para realizar a verificação.
Exemplo
Em um exemplo prático, poderíamos utilizado em um menu de cafeteria.
Disponibilizaríamos as opções ao cliente e, dependendo de sua escolha, o programa imprimiria um valor diferente e na tela referente ao item escolhido, assim como o nome da seleção.
import java.util.Scanner;
public class Coffeshop{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int escolha;
System.out.println("Bem-vindo a cafeteria!");
System.out.println("Selecione sua bebida:");
System.out.println("1. Café");
System.out.println("2. Capuccino");
System.out.println("3. Chá");
System.out.println("4. Água");
System.out.print("Escolha: ");
escolha = scanner.nextInt();
switch (escolha) {
case 1:
System.out.println("Você escolheu Café. O preço é R$ 4,00");
break;
case 2:
System.out.println("Você escolheu Capuccino. O preço é R$ 7,00");
break;
case 3:
System.out.println("Você escolheu Chá. O preço é R$ 2,00");
break;
case 4:
System.out.println("Você escolheu Água. O preço é R$ 1,50");
break;
default:
System.out.println("Opção inválida");
}
scanner.close();
}
}
As saídas apresentadas seriam as seguintes:
Bem-vindo a cafeteria!
Selecione sua bebida:
1. Café
2. Capuccino
3. Chá
4. Água
Escolha:
escolha = 1
Você escolheu Café. O preço é R$ 4,00
escolha = 2
Você escolheu Capuccino. O preço é R$ 7,00
escolha = 3
Você escolheu Chá. O preço é R$ 2,00
escolha = 4
Você escolheu Água. O preço é R$ 1,50
escolha = 5
Opção inválida
Documentação oficial
O uso do switch-case nos proporciona agilidade no desempenho do código.
Para explorar mais sobre seus usos acesse a documentação oficial.