Estrutura de Decisão Condicional Switch em Java

Condicional Switch em Java

A declaração condicional switch testa o valor de uma variável, e dependendo do valor contido nessa variável, permite executar uma entre múltiplas escolhas de ações. Desta forma, é possível substituir múltiplos “ifs” encadeados por um código mais simples de criar, entender e manter posteriormente.

Sintaxe:

switch (variável) {
  case valor1:
    código se variável = valor1;
    break;
  case valor2:
    código se variável = valor2;
    break;
  case valorN:
    código se variável = valorN;
    break;
  default:
    código se variável diferente de todos os valores;
}

Funcionamento da estrutura switch

O condicional switch testa o valor contido em uma variável e o compara com os valores fornecidos em cada caso, representados pela palavra reservada case. Podemos ter quantos casos forem necessários na estrutura, e quando um dos valores corresponder ao da variável de teste, o código do caso será executado.

A estrutura switch compara o valor de cada caso com o da variável sequencialmente, e sempre que encontra um valor correspondente, executa o código associado ao caso. Para evitar que as comparações continuem a ser executadas após um caso correspondente ter sido encontrado, acrescentamos o comando break no final de cada bloco de códigos. O comando break, quando executado, encerra a execução da estrutura onde ele se encontra.

Assim, quando um bloco for executado, o condicional é interrompido e finalizado, evitando perder tempo testando outros casos que não importam mais.

Valor padrão: default

Caso todos os casos seja, testados e nenhum deles corresponda ao valor da variável de teste, será executado o bloco de código associado à seção default (“padrão”) do condicional. Neste caso, não é necessário acrescentar o comando break, pois este é sempre o último comando da estrutura switch.

Exemplo:

public static void main(String[] args) {
  Scanner entrada = new Scanner(System.in);
  System.out.println("Entre com um número entre 1 e 4:");
  int num = entrada.nextInt();
  switch (num) {
     case 1:
       System.out.println("Você escolheu 1");
       break;
     case 2:
       System.out.println("Você escolheu 2");
       break;
     case 3:
       System.out.println("Você escolheu 3");
       break;
     case 4:
       System.out.println("Você escolheu 4");
       break;
     default:
       System.out.println("Número inválido");
  }
}

Neste exemplo é solicitado ao usuário que entre com um número entre 1 e 4, que será lido e armazenado na variável num.

Na sequência, o valor de num é comparado com os valores de 1 a 4 usando um condicional switch, e uma mensagem específica é exibida para cada valor. Se o usuário entrar com um valor fora dessa faixa, será exibida uma mensagem padrão, definida pela seção default do condicional.

Outro exemplo: testando letras

public static void main(String[] args) {
  Scanner entrada = new Scanner(System.in);
  System.out.println("Digite uma letra entre a e d:");
  String letra = entrada.nextLine();
  switch (letra) {
    case "a":
      System.out.println("Abacate");
      break;
    case "b":
      System.out.println("Buriti");
      break;
    case "c":
      System.out.println("Caju");
      break;
    case "d":
      System.out.println("Damasco");
      break;
    default:
      System.out.println("Letra inválida");
  }
}

Anterior: Condicional if / else em Java

Sobre Fábio dos Reis (1195 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

5 Comentários em Estrutura de Decisão Condicional Switch em Java

  1. achei bastante interessante este post, de uma maneira simples e clara pude perceber a estrutura condicional “switch/case”

    gostaria de receber mais dicas sobre esta linguagem incrível chamada “java”

  2. Bem explicado, deu para entender claramente o funcionamento da estrutura switch/case graças ao modo simples mas suscinto da apresentação da matéria. Estou dando os primeiros passos na linguagem Java, espero mais posts sobre a linguagem.
    Obrigado!!!

  3. Walternan Mendes // 05/11/2020 em 12:08 // Responder

    Essa função tem um limite de casos? tipo.. posso adicionar 100 casos ou ele se limita em um valor menor?

    • Dando uma pesquisada, não encontrei um valor limite específico para switch-case em Java. Na linguagem C padrão um switch pode ter ao menos 257 cases, e em C++, 16384 – o que significa que é possível ter mais, e isso dependerá da implementação da linguagem.

      Em Java é mais provável que seja atingido um limite de tamanho para o método onde o switch case é colocado – métodos de tamanho muito grande podem não compilar. Esse limite é de 64 KB – ou seja, se você chegar a 64K de códigos switch/case num único método, terá atingido o limite da linguagem. Mas isso significa muitos milhares de switches!

Escreva um comentário

Seu e-mail não será divulgado


*