image

Bootcamps ilimitados + curso de inglês para sempre

80
%OFF
Article image
Rogério Levy
Rogério Levy09/02/2024 11:23
Compartilhe

Switch Case no Java

  • #Java

 

Tomar decisões é uma parte crucial da programação. Em Java, a função Switch Case é uma das maneiras de tomar decisões com base em um valor específico. Está função permite que você especifique uma variável ou uma expressão para comparar com múltiplos valores e executar diferentes blocos de código com base no valor da variável ou condição.

É uma maneira mais simples e concisa de escrever instruções condicionais do que usar múltiplas instruções if-else. Está função é usada em muitas aplicações Java e é um conceito essencial para todo programador Java entender.

Neste artigo, iremos ver métodos do Switch Case em Java e ilustraremos exemplos para melhorar o entendimento.


MAS O QUE É SWITCH CASE JAVA?


Switch Case é usada para executar diferentes blocos de código com base no valor de uma única variável ou condição. É uma alternativa ao uso de várias condições de if-else para testar a mesma variável ou condição em relação a valores diferentes. Uma ramificação multidirecional no caso do switch permite que o valor de uma condição ou variável altere o fluxo de controle da execução do programa. A condição apresentada dentro instrução switch é avaliada apenas uma vez. O valor de cada caso é comparado ao valor da condição apresentada.

A parte correspondente do código é executada se houver uma correspondência. Para sair da instrução declarada no switch, use a instrução break. Se a instrução break não for usada, o próximo caso será executado mesmo se o valor da expressão não corresponder.


Exemplo:


Raul possui uma rotina exercícios físicos no qual:


  • ·        Corre na Terça-Feira;
  • ·        Malha na Quarta-Feira;
  • ·        Nada na Quinta-Feira;
  • ·        Joga Bola com os amigos de trabalho na Sexta-Feira;

Com base nas informações de Raul, poderíamos facilmente utilizar if-else para criamos atribuições e condições com os valores dos dias e os esportes praticados em cada um deles. Porém vamos ver como se torna mais fácil neste caso usar Switch Case. Lembrando que if-else pode ser mais flexível em algumas outras condições complexas, porém em situações mais fáceis de ler vários casos é uma maneira mais concisa se utilizar o Switch Case.


SINTAXE DO SWITCH CASE NO JAVA:


switch (condicaoValor) {
 case valor1:
     // o caso será executado quando = valor1
     break;
 case valor2:
     // o caso será executado quando = valor2
     break;
 ...
 default:
     // irá ser executado quando não houver nenhum caso correspondente
     break;
}

 

O significado de todos os parâmetros usados na sintaxe acima é dado abaixo:

  • condicaoValor: É a variável ou condição cujo valor queremos testar em relação a valores diferentes. 
  • case: cada caso especifica um valor possível da condicaoValor, juntamente com o código a ser executado se a condicaoValor for igual a esse valor. 
  • break: O break é usado para sair da instrução switch depois que o caso correspondente é executado. 
  • default: O caso default “padrão” é opcional e fornece uma opção de inicial se nenhum dos outros casos corresponder a condição especificada.


ALGUMAS REGRAS IMPORTANTES DO SWITCH CASE


Algumas regras são importantes para instruções de switch Java:

  • A condição da instrução switch precisa ser de um tipo que possa ser comparado a inteiros. Isso inclui a classe String, os tipos enum e os tipos primitivos byte, short, char e int.
  • Os rótulos de maiúsculas e minúsculas devem ser literais ou constantes do mesmo tipo que a expressão da instrução switch.
  • Embora o uso da instrução break para sair da instrução switch uma vez que o caso desejado tenha sido executado seja opcional, é uma estratégia recomendada. Se a instrução break não for usada, o rótulo do próximo caso será executado mesmo se o valor da expressão não corresponder.
  • O caso padrão não é necessário. A instrução switch passará automaticamente para a instrução a seguir se nem o caso padrão nem um rótulo de maiúsculas e minúsculas que corresponda ao valor da expressão estiverem presentes.

USO DO SWITCH CASE EM JAVA


  • CÓDIGO MAIS LIMPO: Quando comparado ao emprego de várias instruções if-else aninhadas para várias situações, elas tornam o código mais legível e sustentável.
  • RAMIFICAÇÕES MÚLTIPLAS: As instruções de caso de opção são usadas quando uma única variável ou expressão deve ser testada em várias situações diferentes.
  • RAMIFICAÇÃO BASEADA EM VALOR: Você pode utilizar Enums e tipos integrais (int, char, byte e short) como a expressão de controle em uma instrução switch-case.
  • EFICAZ: Ao lidar com muitas condições, as declarações de caso de troca são frequentemente mais eficazes do que a utilização de muitas instruções if-else.

VANTAGENS DE UTILIZAÇÃO DO SWITCH CASE


image 

  • SIMPLIFICA O CÓDIGO: Usar uma instrução switch pode ser mais simples e conciso do que usar várias instruções if-else para testar a mesma variável ou expressão em relação a valores diferentes.
  • LEGIBILIDADE: As instruções Switch geralmente são mais fáceis de ler e entender do que várias instruções if-else, especialmente ao testar um grande número de valores.
  • DESEMPENHO: O uso de instruções switch geralmente pode levar a tempos de execução mais rápidos do que instruções if else equivalentes, especialmente quando o número de valores que estão sendo testados é grande.
  • PROPENSO A ERROS: As instruções Switch são menos propensas a erros do que o uso de várias instruções if-else porque cada caso deve ter um valor exclusivo e o caso padrão pode capturar quaisquer valores inesperados.
  • MELHOR CONTROLE: As instruções Switch fornecem um fluxo de controle melhor do que as instruções if-else porque a instrução break é usada para sair da instrução switch depois que o caso correspondente é executado.


COMO FUNCIONA O SWITCH CASE?


Quando executamos a função Switch Case a condição é avaliada e irá comparar cada caso da ramificação declarado e:

  • Se um caso correspondente for encontrado, o bloco de código correspondente será executado.
  • Se não houver maiúsculas e minúsculas correspondentes, o código no bloco padrão será executado (se estiver definido). 

A instrução break é usada para sair do bloco de switch.


FLUXOGRAMA DO SWITCH CASE :

image

 

SWITCH CASE ANINHADO


Um caso de switch aninhado é uma condição de switch contida em outra condição de switch. Em outras palavras, é uma instrução switch que é usada como uma das instruções dentro de outra instrução switch.

A sua sintaxe é muito semelhante à de um caso de switch normal, com a adição de uma condição de um switch interno do dentro de um dos blocos de códigos do switch externo.


SINTAXE DO CASE ANINHADO:


switch (questao) {
 
 case questaoCaso1:
 // realiza operação
 
 switch (interacao) {
 
   case interacaoCaso1:
     // realiza operação
     break;
     
   case interacaoCaso2:
     // realiza operação
     break;
     
   default:
     // realiza operação
     break;
     
 }
 // realiza operação
 break;
 
 case questaoCaso2:
 // do realiza operação
 
 default:
 // realiza operação
 break;
}

 

Nessa sintaxe, questao é a variável que está sendo avaliada na condição do switch case questao e questaoCaso1, questaoCaso2, etc., são os diferentes casos que a instrução switch pode corresponder. 

Dentro de um dos blocos de códigos do switch externo, há uma instrução de switch interno que avalia o valor de interacao. interacaoCaso1, interacaoCaso2, etc., são os diferentes casos que a instrução do switch interno pode corresponder. 

Cada bloco de caso nas instruções de switch externo e interno pode conter instruções a serem executadas quando esse caso for correspondido. Ambas as instruções de switch terminam com uma instrução break para sair do bloco de switch.

 

Tomemos um exemplo:

 

Neste exemplo, temos uma instrução de switch externo que avalia o valor de questionVar. Se questionVar for igual a 2, então temos uma instrução de switch aninhada que avalia o valor de stateVar.


Exemplificação de código no Java:


public class SwitchCaseTest {
public static void main(String[] args) {

  int questionVar = 2;
  int stateVar = 1;
 
  switch (questionVar) {
    case 1:
      System.out.println("Question-case 1");
      break;
    case 2:
      switch (stateVar) {
        case 1:
          System.out.println("State-case 1");
          break;
        case 2:
          System.out.println("State-case 2");
          break;
        default:
          System.out.println("Invalid state case");
          break;
      }
      break;
    case 3:
      System.out.println("Question -case 3");
      break;
    default:
      System.out.println("Invalid question case");
      break;
  }
}
}

Saída:

State-case 1

Detalhamento do código acima: 

  • Se stateVar for igual a 1, a instrução do switch interno corresponderá ao primeiro caso e imprimirá "State Case 1".
  • Caso contrário, se stateVar for igual a 2, a instrução do switch interno corresponderá ao segundo caso e imprimirá "State Case 2".
  • Se stateVar não for 1 ou 2, a instrução do switch interno corresponderá ao caso padrão e imprimirá "Invalid state case".
  • Se questionVar não for 2, a instrução do switch externo verifica os outros casos e imprime as mensagens correspondentes.

 

UTILIZANDO STRING


Podemos utilizar e executar diferentes ações com base nos valores de strings utilizando o Switch Case com uma string. Abaixo iremos exemplificar como utilizar a declaração de strings utilizando switch case.

 

public class StringSwitch{
 public static void main(String[] args) {
     String day = "Tuesday";
     switch (day) {
         case "Monday":
             System.out.println("It's Monday!");
             break;
         case "Tuesday":
             System.out.println("It's Tuesday!");
             break;
         case "Wednesday":
             System.out.println("It's Wednesday!");
             break;
         case "Thursday":
             System.out.println("It's Thursday!");
             break;
         case "Friday":
             System.out.println("It's Friday!");
             break;
         default:
             System.out.println("It's a weekend day or an invalid day.");
             break;
     }
 }
}

Saída:

It's Tuesday!


CONCLUSÃO


A utilização do Switch Case é um conceito importante para o desenvolvimento no Java, pois permite executar diferentes blocos de códigos em determinadas situações com base no valor de uma determinada condição ou verificação de uma variável.

Com a utilização desta função, você pode simplificar seu código melhorando a legibilidade e a otimização de desempenho do seu código, onde implementando corretamente torna-se muito mais eficiente a escrita do código e a sua leitura.

Compartilhe
Recomendados para você
Deal - Spring Boot e Angular (17+)
Cognizant - Arquitetura com Spring Boot e Cloud
Claro - Java com Spring Boot
Comentários (0)