Conteúdo do Curso
Fundamentos de Java
Fundamentos de Java
Instrução Switch-Case
Lidando com múltiplas condições diferentes
Quando há muitas condições a serem verificadas, utilizar várias cadeias de if-else
pode não ser conveniente.
Por exemplo:
Main
package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `if` statement int a = 30; if (a == 10) { System.out.println(10); } else if (a == 20) { System.out.println(20); } else if (a == 30) { System.out.println(30); } else if (a == 40) { System.out.println(40); } else { System.out.println(a); } } }
Podemos perceber que isso não parece limpo nem profissional. Para esses casos, o Java oferece a instrução switch-case
.
Instrução switch-case
A instrução switch-case
é composta por várias partes:
Main
switch (expression) { case value_1: // Code to be executed if expression matches `value_1` break; // Break is used to exit the `switch` statement. case value_2: // Code to be executed if expression matches `value_2` break; // Break is used to exit the `switch` statement. ............ default: // Code to be executed if no cases match // Optional, but executed if no other case matches }
No código acima, é possível observar o uso de blocos switch para executar operações de forma seletiva. Utiliza-se a expressão, que é um pouco diferente de uma condição. Nesse campo, insere-se um valor ou uma expressão. Por exemplo, 10 / 2
. Neste caso, o bloco case com a assinatura case 5
será executado, pois a expressão acima resulta em 5.
Também é possível utilizar uma condição aqui. Para isso, é necessário escrever uma expressão booleana no bloco de expressão, que deve se parecer com: 10 / 2 == 5
. Em seguida, escreva dois cases abaixo:
java
No entanto, essa estrutura será quase indistinguível de um if-else
comum.
A palavra-chave "break"
Utiliza-se essa palavra-chave para encerrar a execução de uma instrução switch-case
e sair de seu corpo. Essa palavra é frequentemente utilizada em laços, que serão abordados nos próximos capítulos. Utilize essa palavra-chave quando for necessário sair de um bloco de código e interromper sua execução.
Agora, vamos aprimorar o código que escrevemos acima utilizando a declaração switch-case
:
Main
package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `switch` statement int a = 30; switch (a) { case 10: System.out.println(10); break; case 20: System.out.println(20); break; case 30: System.out.println(30); break; case 40: System.out.println(40); break; default: System.out.println("There is no matching value"); } } }
Podemos observar como o código ficou muito mais limpo e fácil de ler e expandir. Não é necessário escrever outra declaração if
do zero caso seja preciso adicionar novas condições. Em vez disso, basta adicionar outro bloco case à nossa switch-case statement
.
Vamos analisar o esquema do bloco switch-case
:
Como podemos ver, pode haver quantos casos quisermos. Cada caso exige sua própria condição e código, que serão executados quando o programa entrar no bloco do caso.
É recomendável utilizar a palavra-chave break
, pois o programa não sairá do bloco switch até que todos os blocos de caso tenham sido executados. O bloco default será executado se não entrarmos em nenhum dos blocos de caso ou se não utilizarmos a palavra-chave break
.
Vamos analisar outro exemplo sem as palavras-chave break
:
Main
package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `switch` statement int a = 10; switch (a) { case 10: System.out.println(10); case 20: System.out.println(20); case 30: System.out.println(30); case 40: System.out.println(40); default: System.out.println("There is no matching value"); } } }
Recebemos vários valores, que diferem do que esperávamos. Além disso, obtivemos informações dos blocos case 10
e default
. É exatamente por isso que usamos a palavra-chave break
após cada bloco. Dessa forma, o programa sairá da instrução switch
e continuará sua execução.
1. O que será exibido no console?
2. Por que precisamos da palavra-chave break
?
Obrigado pelo seu feedback!