Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Instruções Switch em Java | Operadores e Condicionais
Introdução ao Java

Instruções Switch em Java

Deslize para mostrar o menu

Até agora, if, else e else if têm sido as principais ferramentas para lidar com diferentes situações. Elas funcionam muito bem para verificar condições, intervalos ou comparações.

Mas, às vezes, não estamos comparando intervalos — queremos apenas verificar uma variável em relação a vários valores exatos. Por exemplo:

  • um cliente escolhe um método de pagamento;
  • um pedido de café possui um tipo específico de retirada;
  • um membro de fidelidade seleciona um nível de recompensa.

É aí que as instruções switch se tornam úteis — elas comparam um valor com várias correspondências exatas de forma mais limpa e organizada.

Estrutura

switch (variable) {
    case "value1" -> {
        // code
    }

    case "value2" -> {
        // code
    }

    default -> {
        // fallback code
    }
}

O Java verifica cada case um por um até encontrar uma correspondência.

Exemplo

Main.java

Main.java

1234567891011121314151617181920212223242526
package com.example; public class Main { public static void main(String[] args) { String pickupType = "delivery"; switch (pickupType) { case "pickup": System.out.println("Your coffee will be ready at the counter"); break; case "delivery": System.out.println("Your coffee is on the way"); break; case "dine-in": System.out.println("Enjoy your coffee inside the cafe"); break; default: System.out.println("Unknown order type"); break; } } }

Java verifica pickupType caso a caso — "pickup" não corresponde, "delivery" corresponde, então imprime "Your coffee is on the way" e o break interrompe imediatamente o switch. O bloco default no final funciona como um else final — só é executado quando nenhum dos casos corresponde.

Java 14+ — Nova Sintaxe do Switch

No Java 14 e versões posteriores, uma sintaxe mais recente foi introduzida usando a seta ->:

switch (pickupType) {
    case "pickup" -> System.out.println("Your coffee will be ready at the counter");
    case "delivery" -> System.out.println("Your coffee is on the way");
    case "dine-in" -> System.out.println("Enjoy your coffee inside the cafe");
    default -> System.out.println("Unknown order type");
}

O que mudou:

  • não é necessário break;
  • usa -> em vez de :;
  • cada caso é automaticamente isolado — sem risco de fall-through;
  • mais limpo e fácil de ler.

Ambas as versões funcionam da mesma forma — a nova sintaxe é apenas mais moderna e segura.

Uma boa regra para lembrar:

  • Use if / else if para comparações e intervalos;
  • Use switch ao verificar um valor contra várias opções exatas;
question mark

Qual é a finalidade da instrução break dentro de um switch?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 6

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 3. Capítulo 6
some-alt