Usando a instrução Switch para várias opções em Java

Se o seu programa Java precisar fazer uma escolha entre duas ou três ações, um se, então, mais declaração será suficiente. No entanto, o se, então, mais A declaração começa a parecer complicada quando há várias opções que um programa pode precisar fazer. Existem apenas tantos mais... se as instruções que você deseja adicionar antes que o código comece a parecer desarrumado. Quando for necessária uma decisão entre várias opções, use a instrução switch.

A instrução Switch

Uma instrução switch permite que um programa compare o valor de um expressão para uma lista de valores alternativos. Por exemplo, imagine que você tinha um menu suspenso que continha os números de 1 a 4. Dependendo do número escolhido, você deseja que seu programa faça algo diferente:

// digamos que o usuário escolha o número 4
int menuChoice = 4;
switch (menuChoice)
{
caso 1:
JOptionPane.showMessageDialog (null, "Você escolheu o número 1.");
pausa;
caso 2:
JOptionPane.showMessageDialog (null, "Você escolheu o número 2.");
pausa;
caso 3:
instagram viewer

JOptionPane.showMessageDialog (null, "Você escolheu o número 3.");
pausa;
// Esta opção é escolhida porque o valor 4 corresponde ao valor de
// a variável menuChoise
case 4: JOptionPane.showMessageDialog (null, "Você escolheu o número 4."); pausa;
padrão:
JOptionPane.showMessageDialog (null, "Algo deu errado!");
pausa;
}

Se você observar a sintaxe da instrução switch, observe algumas coisas:

1. A variável que contém o valor que precisa ser comparado é colocada na parte superior, dentro dos colchetes.

2. Cada opção alternativa começa com um rótulo de caso. O valor a ser comparado com o topo variável vem a seguir, seguido por dois pontos. Por exemplo, caso 1: é o rótulo do caso seguido pelo valor 1 - poderia ser facilmente o caso 123: ou caso -9:. Você pode ter quantas opções alternativas precisar.

3. Se você observar a sintaxe acima, a quarta opção alternativa será destacada - o rótulo do caso, o código que ele executa (ou seja, o JOptionPane) e uma instrução de interrupção. A instrução break sinaliza o final do código que precisa ser executado. Se você olhar, verá que todas as opções alternativas terminam com uma declaração de quebra. É muito importante lembrar de inserir a declaração de intervalo. Considere o seguinte código:

 // digamos que o usuário escolha o número 1
int menuChoice = 1;
switch (menuChoice)
caso 1:
JOptionPane.showMessageDialog (null, "Você escolheu o número 1.");
caso 2:
JOptionPane.showMessageDialog (null, "Você escolheu o número 2.");
pausa;
caso 3:
JOptionPane.showMessageDialog (null, "Você escolheu o número 3.");
pausa;
caso 4:
JOptionPane.showMessageDialog (null, "Você escolheu o número 4.");
pausa;
padrão:
JOptionPane.showMessageDialog (null, "Algo deu errado!");
pausa;
}

O que você espera que aconteça é ver uma caixa de diálogo dizendo "Você escolheu o número 1", mas como não há uma declaração de interrupção correspondente ao primeiro rótulo do caso, o código no segundo rótulo do caso também é executado. Isso significa que a próxima caixa de diálogo com a mensagem "Você escolheu o número 2" também será exibida.

4. Há um rótulo padrão na parte inferior da instrução switch. É como uma rede de segurança, caso nenhum dos valores dos rótulos de caixas corresponda ao valor que está sendo comparado a ela. É muito útil fornecer uma maneira de executar código quando nenhuma das opções desejadas é escolhida.

Se você sempre espera que uma das outras opções seja escolhida, pode deixar de fora o rótulo padrão, mas colocar um no final de cada instrução de comutação criada é um bom hábito. Pode parecer improvável que alguma vez seja usado, mas erros podem surgir no código e ajudar a detectar um erro.

Desde o JDK 7

Uma das mudanças na sintaxe Java com o lançamento do JDK 7 é a capacidade de usar Cordas nas instruções do switch. Ser capaz de comparar valores de String em uma instrução switch pode ser muito útil:

Nome da string = "Bob";
switch (name.toLowerCase ())
{
caso "joe":
JOptionPane.showMessageDialog (null, "Bom dia, Joe!");
pausa;
caso "michael":
JOptionPane.showMessageDialog (null, "Como está indo, Michael?");
pausa;
caso "bob":
JOptionPane.showMessageDialog (null, "Bob, meu velho amigo!");
pausa;
caso "billy":
JOptionPane.showMessageDialog (null, "Tarde Billy, como estão as crianças?");
pausa;
padrão:
JOptionPane.showMessageDialog (null, "Prazer em conhecê-lo, John Doe.");
pausa;
}

Ao comparar dois valores de String, pode ser muito mais fácil se você garantir que todos estejam no mesmo caso. O uso do método .toLowerCase significa que todos os valores de rótulo de caso podem estar em minúsculas.

Coisas a serem lembradas sobre a declaração Switch

• O tipo da variável a ser comparada deve ser do tipo char, byte, short, int, Character, Byte, Short, Integer, String ou enum.

• O valor próximo ao rótulo do caso não pode ser uma variável. Tem que ser uma expressão constante (por exemplo, um literal int, um literal char).

• Os valores das expressões constantes em todos os rótulos de maiúsculas e minúsculas devem ser diferentes. O seguinte resultaria em um erro em tempo de compilação:

switch (menuChoice)
{
caso 323:
JOptionPane.showMessageDialog (null, "Você escolheu a opção 1.");
pausa;
caso 323:
JOptionPane.showMessageDialog (null, "Você escolheu a opção 2.");
pausa;

• Só pode haver um rótulo padrão em uma instrução de chave.

• Ao usar um objeto para a instrução switch (por exemplo, String, Inteiro, Caractere), verifique se não é nulo. Um objeto nulo resultará em um erro de tempo de execução quando a instrução switch for executada.

instagram story viewer