A estrutura do switch é:
switch (variável) {
case valor1 :
Código a ser executado caso valor1 seja igual a da variável
case valor2 :
Código a ser executado caso valor2 seja igual a da variável
case valor3 :
Código a ser executado caso valor3 seja igual a da variável
}
Até a versão 6 do Java, switch tratava os tipos primitivos de dados: byte, short, char e int. Agora é possível trabalhar com classes enumeradas e String.
O resultado quando rodamos esta classe é:
O que mais devemos perceber com relação a utilização do switch/case?
- a sintaxe exige que depois do case exista um valor
- entre os parênteses depois de switch deve estar uma variável pura, isto é, não podemos colocar neste local uma condicional do tipo (variavel1 > 0)
- para marcar o fim do bloco de execução de um case devemos colocar no final do bloco a palavra reservada break
- como o switch/case pode ter várias possibilidades, veja no nosso caso, que a variável utilizada é um inteiro e este tipo de variável pode assumir muito mais valores que de 1..7. Utilizamos para tratar estes casos com uma cláusula default. O bloco definido por default é sempre executado quando nenhum dos testes case programados é verdadeiro. Por convenção ele é colocado ao final das condições.
Vamos agora fazer uma variação da classe que testamos. Chamaremos de Exemplo2.java
Note que mantive o método converte que agora estou chamando de toString() e criei um novo método toInt() que faz o inverso de toString().
Este método tem duas coisas interessantes:
- utiliza switch ... case com valores do tipo String
- utilize String.toLowerCase() para colocar todas as letras em minúsculas e deixar o nosso código um pouco mais genérico.
Vamos compilar e rodar agora a nova classe. No meu caso tenho que trocar para o Windows, pois não tenho Java 7 no linux.
Note que gravo diaStr o valor "Domingo" que é passado para toInt(diaStr). Com isto o switch/case interno pode recodificar a String em um inteiro.
Nenhum comentário:
Postar um comentário