Conteúdo do Curso
Noções Básicas de Java
Noções Básicas de Java
Instrução Switch-Case
Lidando com Múltiplas Condições Diferentes
Quando temos várias condições a verificar, usar múltiplas cadeias 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 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 ver que isso não parece limpo e 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(expresion) { case value_1: //code to be executed break; //optional case value_2: //code to be executed break; //optional ............. default: //code to be executed if all cases are not matched }
No código acima, você pode ver que usamos blocos switch para executar operações seletivamente. Nós confiamos na expressão, que é ligeiramente diferente de uma condição. Ali, inserimos um valor ou uma expressão. Por exemplo, 10 / 2. Nesse caso, o bloco case com a assinatura case 5 será executado porque a expressão acima é igual a 5.
Também podemos usar uma condição aqui. Nesse caso, precisamos escrever uma expressão booleana no bloco da expressão, e ela deve parecer algo assim: 10 / 2 == 5
. Em seguida, escreva dois cases abaixo:
Mas essa estrutura será quase indistinguível de um if-else
.
A Palavra-Chave "break;"
Utilizamos essa palavra-chave para terminar a execução de um comando switch-case
e sair do seu corpo. Essa palavra é frequentemente usada em loops, os quais discutiremos nos próximos capítulos. Use essa palavra-chave quando precisar sair de um bloco de código e parar sua execução.
Agora vamos melhorar o código que escrevemos acima usando a instrução switch-case:
Main
package com.example; public class Main { public static void main(String[] args) { //you can change the value of 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 ver como o código ficou muito mais limpo e fácil de ler e estender. Não precisamos escrever outra instrução if
do zero se precisarmos adicionar condições adicionais. Em vez disso, podemos adicionar outro bloco case à nossa instrução switch-case
.
Vamos analisar o esquema do bloco switch-case:
Como podemos ver, podemos ter quantos casos desejarmos. Cada caso requer sua própria condição e código, que será executado quando o nosso programa entrar no bloco case.
É aconselhável usar a palavra-chave break;
porque o programa não sairá do bloco switch até que todos os blocos case tenham sido executados. O bloco default será executado se não entrarmos em nenhum dos blocos case ou se não utilizarmos a palavra-chave break;
.
Vamos agora olhar para 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 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.
Obrigado pelo seu feedback!