Neste tutorial, você aprenderá a usar a instrução switch em Java para controlar o fluxo de execução do seu programa com a ajuda de exemplos.
A switch
instrução nos permite executar um bloco de código entre muitas alternativas.
A sintaxe da switch
instrução em Java é:
switch (expression) ( case value1: // code to be executed if // expression is equal to value1 break; case value2: // code to be executed if // expression is equal to value2 break;… … default: // default statements )
Como funciona a instrução switch?
A expressão é avaliada uma vez e comparada com os valores de cada rótulo de caso .
- Se houver uma correspondência, o código correspondente após o rótulo do caso correspondente é executado.
Por exemplo, se o valor da expressão for igual a valor2, o código a seguircase value2:
será executado. - Se não houver correspondência, o código após
default:
é executado.
Nota : Podemos fazer a mesma funcionalidade usando o Java if… else… if ladder. No entanto, a sintaxe da instrução switch é mais limpa e muito mais fácil de ler e escrever.
Fluxograma de declaração de switch

Exemplo 1: instrução switch Java
// Java Program to check the size // using the switch… case statement class Main ( public static void main(String() args) ( int number = 44; String size; // switch statement to check size switch (number) ( case 29: size = "Small"; break; case 42: size = "Medium"; break; // match the value of week case 44: size = "Large"; break; case 48: size = "Extra Large"; break; default: size = "Unknown"; break; ) System.out.println("Size: " + size); ) )
Produto :
Tamanho grande
No exemplo acima, usamos a instrução switch para encontrar o tamanho. Aqui, temos um número variável. A variável é comparada com o valor de cada afirmação de caso.
Visto que o valor corresponde ao caso 44 , a variável de tamanho é atribuída com valor Large
.
declaração break em Java switch … case
Observe que usamos a break
instrução em cada bloco de caso. Isso é útil para encerrar a instrução.
Se a break
instrução não for usada, todos os casos após o caso correspondente serão executados. Por exemplo,
class Main ( public static void main(String() args) ( int expression = 2; // switch statement to check size switch (expression) ( case 1: System.out.println("Case 1"); // matching case case 2: System.out.println("Case 2"); case 3: System.out.println("Case 3"); default: System.out.println("Default case"); ) ) )
Resultado
Caso 2 Caso 3 Caso padrão
No exemplo acima, não usamos a break
instrução. Aqui, a expressão corresponde a case 2
.
Você pode ver que, junto com case 2
, todos os casos a seguir também são executados.
Esta não é a saída desejada. Portanto, é necessário usar a break
instrução com cada bloco de caso .
Exemplo 2: Fazendo Calculadora usando a instrução switch
O programa abaixo recebe três entradas do usuário: um operador e 2 números . Com base na operadora fornecida pelo usuário, ele realiza o cálculo nos números. Em seguida, o resultado é exibido na tela.
Antes de prosseguir com o programa, certifique-se de saber sobre o Java Scanner para obter informações do usuário.
import java.util.Scanner; class Main ( public static void main(String() args) ( char operator; Double number1, number2, result; // create an object of Scanner class Scanner input = new Scanner(System.in); // ask users to enter operator System.out.print("Choose an operator: +, -, *, or /: "); operator = input.next().charAt(0); // ask users to enter numbers System.out.print("Enter first number: "); number1 = input.nextDouble(); System.out.println("Enter second number: "); number2 = input.nextDouble(); switch (operator) ( // performs addition between numbers case '+': result = number1 + number2; System.out.print(number1 + "+" + number2 + " = " + result); break; // performs subtraction between numbers case '-': result = number1 - number2; System.out.print(number1 + "-" + number2 + " = " + result); break; // performs multiplication between numbers case '*': result = number1 * number2; System.out.print(number1 + "*" + number2 + " = " + result); break; // performs division between numbers case '/': result = number1 / number2; System.out.print(number1 + "/" + number2 + " = " + result); break; default: System.out.println("Invalid operator!"); break; ) input.close(); ) )
Produto 1
Escolha um operador: +, -, * ou /: + Insira o primeiro número: 23 Insira o segundo número: 21 23,0 + 21,0 = 44,0
Produto 2
Escolha um operador: +, -, * ou /: - Insira o primeiro número: 24 Insira o segundo número: 13 24,0-13,0 = 11,0
Produto 3
Escolha um operador: +, -, * ou /: * Insira o primeiro número: 12 Insira o segundo número: 6 12,0 * 6,0 = 72,0
Produto 4
Escolha um operador: +, -, * ou /: / Insira o primeiro número: 36 Insira o segundo número: 6 36,0 / 6,0 = 6,0
Produto 5
Escolha um operador: +, -, * ou /:? Insira o primeiro número: 12 Insira o segundo número: 23 Operador inválido!
No exemplo acima, estamos usando a switch… case
instrução para realizar adição, subtração, multiplicação e divisão.
Observação : a instrução switch Java funciona apenas com:
- Tipos de dados primitivos Java: byte, short, char e int
- Tipos enumerados em Java
- Java String Class
- Classes de wrapper Java: caractere, byte, curto e inteiro.