O que é um Switch Case em Java e como usá-lo?

Publicados: 2022-03-04

O switch case em Java é uma das muitas instruções Java que informam à linguagem de programação o que fazer. Assim como frases em inglês que dão uma ideia completa do texto e cláusulas de inclusão, as instruções Java são comandos que incluem uma ou mais expressões que o interpretador Java executa. Em termos mais simples, uma instrução Java é uma instrução que explica o que deve acontecer.

Uma instrução Java termina em um ponto e vírgula (;) e diz ao Java para processar instruções até esse ponto e vírgula. Por padrão, o interpretador Java segue a ordem em que as instruções são escritas e executa uma instrução após a outra. No entanto, as instruções que controlam o fluxo do programa (instruções de controle de fluxo), como loops e condicionais, não seguem a ordem de execução padrão. Este artigo se concentra em um desses tipos de mecanismo de controle de seleção – a instrução Java switch case.

Índice

O que é um switch case em Java?

Java suporta três tipos de instruções: instruções de expressão para alterar valores de variáveis, chamar métodos e criar objetos, instruções de declaração para declarar variáveis ​​e instruções de fluxo de controle para determinar a ordem de execução das instruções.

A instrução Java switch case é um tipo de instrução de fluxo de controle que permite que o valor de uma expressão ou variável altere o fluxo de controle da execução do programa por meio de uma ramificação multidirecional. Em contraste com as instruções if-then e if-then-else, a instrução switch Java possui vários caminhos de execução. Switch case em Java funciona com tipos de dados primitivos short, byte, int e char. A partir do JDK7, o switch Java também pode ser usado com a classe String, tipos enumerados e classes Wrapper que agrupam tipos de dados primitivos como Byte, Character, Integer e Short.

O corpo de uma instrução switch case em Java é chamado de bloco switch. Cada instrução no bloco switch é rotulada usando um ou mais casos ou rótulos padrão. Portanto, a instrução switch avalia sua expressão, seguida pela execução de todas as instruções que seguem o rótulo case correspondente.

Abaixo está a sintaxe da instrução switch case:

// comando switch

alternar (expressão)

{

// declarações case

// os valores devem ser do mesmo tipo de expressão

valor do caso1:

// Afirmações

pausa; // pausa é opcional

valor do caso2:

// Afirmações

pausa; // pausa é opcional

// Podemos ter qualquer número de declarações case

// abaixo está a declaração padrão, usada quando nenhum dos casos é verdadeiro.

// Nenhuma pausa é necessária no caso padrão.

predefinição :

// Afirmações

}

Exemplo da instrução switch Java

O exemplo de código Java a seguir declara um int chamado “month” cujo valor representa um dos 12 meses do ano. O código usa a instrução switch case para exibir o nome do mês com base no valor do mês.

classe pública SwitchExample {

public static void main(String[] args) {

int mês = 6;

String mêsString;

mudar (mês) {

caso 1: monthString = “Janeiro”;

pausa;

caso 2: monthString = “Fevereiro”;

pausa;

caso 3: monthString = “março”;

pausa;

caso 4: monthString = “abril”;

pausa;

caso 5: monthString = “Maio”;

pausa;

caso 6: monthString = “Junho”;

pausa;

caso 7: monthString = “Julho”;

pausa;

caso 8: monthString = “agosto”;

pausa;

caso 9: monthString = “Setembro”;

pausa;

caso 10: monthString = “Outubro”;

pausa;

caso 11: monthString = “Novembro”;

pausa;

caso 12: monthString = “dezembro”;

pausa;

default: monthString = “Mês inválido”;

pausa;

}

System.out.println(monthString);

}

}

Saída: junho

Objetivo da instrução break no caso do switch Java

A instrução break é um aspecto essencial do caso do switch Java que encerra a instrução switch delimitadora. A instrução break é necessária porque, sem ela, as instruções no bloco switch falhariam. Assim, independentemente da expressão dos rótulos case sucessivos, todas as instruções após o rótulo case correspondente são executadas sequencialmente até que uma instrução break seja encontrada.

O código a seguir é um exemplo para mostrar um bloco switch que falha na ausência da instrução break.

public class SwitchExampleFallThrough {

public static void main(String[] args) {

java.util.ArrayList<String> futureMonths =

new java.util.ArrayList<String>();

int mês = 6;

mudar (mês) {

caso 1: futureMonths.add(“Janeiro”);

caso 2: futureMonths.add(“Fevereiro”);

caso 3: futureMonths.add(“Março”);

caso 4: futureMonths.add(“Abril”);

caso 5: futureMonths.add(“Maio”);

caso 6: futureMonths.add(“June”);

caso 7: futureMonths.add(“Julho”);

caso 8: futureMonths.add(“Agosto”);

caso 9: futureMonths.add(“Setembro”);

caso 10: futureMonths.add(“Outubro”);

caso 11: futureMonths.add(“Novembro”);

caso 12: futureMonths.add(“Dezembro”);

pausa;

padrão: quebrar;

}

if (futureMonths.isEmpty()) {

System.out.println(“Número do mês inválido”);

} outro {

for (String monthName : futureMonths) {

System.out.println(monthName);

}

}

}

}

Saída:

junho

julho

agosto

setembro

Outubro

novembro

dezembro

O código acima exibe o mês do ano correspondente ao mês inteiro e os meses seguintes. Aqui, a instrução break final não serve para nada porque o fluxo sai da instrução switch. O uso da instrução break é útil porque torna o código menos propenso a erros e as modificações mais fáceis. A seção padrão no código trata de todos os valores não regulamentados por nenhuma das seções de caso.

Instrução de switch Java com vários rótulos de maiúsculas e minúsculas

As instruções switch em Java também podem ter vários rótulos de maiúsculas e minúsculas. O código a seguir ilustra o mesmo – aqui, o número de dias em um determinado mês do ano é calculado.

class SwitchMúltiplo{

public static void main(String[] args) {

int mês = 2;

int ano = 2020;

int numDias = 0;

mudar (mês) {

caso 1: caso 3: caso 5:

caso 7: caso 8: caso 10:

caso 12:

numDias = 31;

pausa;

caso 4: caso 6:

caso 9: caso 11:

numDias = 30;

pausa;

caso 2:

if (((ano % 4 == 0) &&

!(ano % 100 == 0))

|| (ano % 400 == 0))

numDias = 29;

outro

numDias = 28;

pausa;

predefinição:

System.out.println(“Mês inválido.”);

pausa;

}

System.out.println(“Número de dias = “

+ numDias);

}

}

Saída:

Número de dias = 29

Instruções de caso de alternância Java aninhadas

Um switch aninhado é quando você usa um switch como parte da sequência de instruções de um switch externo. Nesse caso, não há conflito entre as constantes de case no outro switch e aquelas no switch interno porque uma instrução switch define seu próprio bloco.

O exemplo a seguir demonstra o uso de instruções switch-case Java aninhadas :

classe pública TestNest {

public static void main(String[] args)

{

String Branch = “CSE”;

int ano = 2;

mudar (ano) {

caso 1:

System.out.println(“Disciplinas eletivas: Álgebra, Inglês Avançado”);

pausa;

caso 2:

switch (Branch) // switch aninhado

{

caso “CSE”:

caso “CCE”:

System.out.println(“Disciplinas eletivas: Big Data, Machine Learning”);

pausa;

caso “ECE”:

System.out.println(“cursos eletivos : Engenharia de Antena”);

pausa;

predefinição:

System.out.println(“Disciplinas eletivas: Otimização”);

}

}

}

}

Saída:

Disciplinas eletivas: Big Data, Machine Learning

Uso de strings em instruções switch

A partir do JDK7, você pode usar um objeto String na expressão de uma instrução switch. A comparação do objeto string na expressão do comando switch com as expressões associadas de cada rótulo case é como se estivesse usando o método String.equals. Além disso, a comparação de objetos string na expressão da instrução switch faz distinção entre maiúsculas e minúsculas.

O exemplo de código a seguir exibe o tipo de jogo com base no valor da String chamada “game”.

classe pública StringInSwitchStatementExample {

public static void main(String[] args) {

Jogo de cordas = “Críquete”;

trocar(jogo){

case “Vôlei”: case”Futebol”: case”Críquete”:

System.out.println(“Este é um jogo ao ar livre”);

pausa;

case"Jogos de Cartas": case"Xadrez": case"Quebra-cabeças": case"Basquete indoor":

System.out.println(“Este é um jogo interno”);

pausa;

predefinição:

System.out.println(“Que jogo é?”);

}

}

}

Saída:

Este é um jogo ao ar livre

Regras a serem lembradas ao usar instruções switch Java

Seria melhor se você mantivesse certas regras em mente ao usar instruções switch Java . Segue uma lista do mesmo:

  • O valor de um caso e a variável no switch devem ter o mesmo tipo de dados.
  • As instruções switch Java não permitem valores de maiúsculas e minúsculas duplicados.
  • Um valor de caso deve ser literal ou uma constante. Variáveis ​​não são permitidas.
  • O uso da instrução break dentro do switch encerra uma sequência de instruções.
  • A instrução break é opcional e sua omissão continuará a execução no caso subsequente.
  • A instrução padrão também é opcional e pode ocorrer em qualquer lugar dentro do bloco switch. Se não for colocado no final, uma instrução break deve ser adicionada após a instrução padrão para pular a execução da instrução case seguinte.

Caminho a seguir

Java tem popularidade incomparável entre programadores e desenvolvedores e é uma das linguagens de programação mais procuradas atualmente. Desnecessário dizer que desenvolvedores iniciantes e engenheiros de software que desejam se qualificar para o mercado de trabalho em constante evolução precisam obter uma fortaleza sobre suas habilidades em Java.

A Certificação PG vinculada ao trabalho do upGrad em Engenharia de Software é especialmente projetada para calouros e candidatos do último ano que desejam aprender a codificar e ser colocados em funções de software de nível básico.

Se você está se perguntando o que o curso online de 5 meses implica, aqui estão alguns destaques para você ter uma ideia:

  • Ganhe Especializações MERN Stack e Cloud-Native
  • Aprenda as principais habilidades como Java, DSA, CSS3, HTML5, AWS, MERN, bancos de dados SQL e NoSQL e muito mais
  • Mais de 500 horas de conteúdo com mais de 350 horas de treinamento prático
  • Cinco projetos da indústria e mais de 50 sessões ao vivo
  • Preparação para colocação e orientação profissional
  • Fóruns de discussão e forte rede de pares

Se você deseja iniciar sua jornada em direção a uma carreira promissora em engenharia de software, aqui está sua chance de aprender com os melhores.

1. O que é um caso em uma instrução switch?

Uma instrução switch em Java permite testar a igualdade de uma variável em relação a uma lista de valores. Aqui, cada valor é conhecido como um caso, e a variável ligada é verificada para cada um dos casos.

2. Quais são as vantagens de uma caixa de comutação?

A principal vantagem das instruções switch case Java sobre as cascatas if-else tradicionais é que a primeira permite que os programadores escrevam um código mais compacto, claro e legível. Por outro lado, as instruções if-else geralmente envolvem muitas repetições de código. Assim, se quisermos alterar uma parte específica do código, teríamos que fazer alterações em outros lugares. Para evitar esse processo demorado e propenso a erros, é mais sensato usar caixas de comutação.

3. Qual é a diferença entre switch case e if-else?

No caso de instruções switch, os casos são executados sequencialmente, um após o outro, até que a palavra-chave break seja encontrada ou a instrução padrão seja executada. Pelo contrário, no caso de instruções if-else, o bloco 'if' ou 'else' é executado dependendo da condição.