Pensamento Computacional - Switch no Java - Parte 1

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Comando switch

Sintaxe e Semântica

O comando switch permite controlar o fluxo de um programa de forma condicional através de cláusulas. O comando testa uma expressão que deve resultar em um número inteiro. Uma sequência de cláusulas case permite executar uma sequência de instruções conforme o valor da expressão. Note que esta sequência de instruções pode ser interrompida por um break.

import java.util.Scanner;

public class ComandoSwitch {
    public static void main(String[] args) {     
        Scanner teclado = new Scanner(System.in);
 
        int x = 0, opcao;
        System.out.println("Entre com uma opção (número inteiro)");
        opcao = teclado.nextInt();

        switch(opcao) {
        case 1:
                System.out.println("Opção 1");
                break; /* o break força o encerramento da instrução*/
        case 2:
                System.out.println("Opção 2");
                x=x+1;  /* instrução demonstrativa apenas */               
                break;
        case 3:
                System.out.println("Opção 3"); /* note o efeito de não ter o break */
        case 4:
                System.out.println("Opção 4");
                break;
        case 5:
                System.out.println("Opção 5");
                break;
        default:
                System.out.println("Default");
                break;    /* a opção default é opcional */
        }
        
     }      
}

Exercício 1

Implementar Um programa java que apresenta um menu com as seguintes condições:

Tecle (1) para desenhar um retângulo cheio
Tecle (2) para desenhar um triângulo retângulo
Tecle qualquer outro número para sair.

Use o comando switch. Os desenhos podem ser realizados conforme o seu desejo.

Exercício 2

Implementar uma calculadora simples que permite entrar com 2 operandos e uma operação:

(1) Somar
(2) Subtrair
(3) Multiplicar
(4) Dividir
(5) Encerrar

Comando switch combinado com caracteres

Um comando switch() pode ser usado com valores inteiros. Notar que o tipo char na realidade é um número inteiro de tamanho pequeno (ver tabela ASCII). Entretanto, no Java pode-se no lugar de um número inteiro que representa uma letra ou símbolo, simplesmente usar o símbolo entre aspas SIMPLES. Veja o exemplo abaixo:

import java.util.Scanner;

public class ComandoSwitchUsoChar {
   public static void main(String[] args) {     
        Scanner teclado = new Scanner(System.in);
        char caracter;

        System.out.println("Entre com um caracter");
        caracter = teclado.next().charAt(0);

        switch(caracter) {
        case 'a':
        case 'e':
        case 'i':
        case 'o':
        case 'u':
                System.out.println("vogal");
                break; 
        default:
                System.out.println("outra coisa");
                break;    /* a opção default é opcional */
        }
        
     }          
}


Olhando na tabela ASCII observa-se que o caracter 'a' é o número inteiro 65. Então o código acima também poderia ser colocado da forma:

import java.util.Scanner;

public class ComandoSwitchUsoChar {
   public static void main(String[] args) {     
        Scanner teclado = new Scanner(System.in);
        char caracter;

        System.out.println("Entre com um caracter");
        caracter = teclado.next().charAt(0);

        switch(caracter) {
        case  97:
        case 'e':
        case 'i':
        case 'o':
        case 'u':
                System.out.println("vogal");
                break; 
        default:
                System.out.println("outra coisa");
                break;    /* a opção default é opcional */
        }
        
     }          
}

Exercício

Substituir as vogais acima pelos respectivos números inteiros que constam na tabela ASCII.

Comando switch com strings

Notar que uma string é uma SEQUÊNCIA de caracteres. Mesmo assim, a partir do Java 7, strings podem ser usadas no comando switch.

import java.util.Scanner;

public class SwitchComString {
   public static void main(String[] args) {     
        Scanner teclado = new Scanner(System.in);
        String palavra;

        System.out.println("Entre com uma string");
        palavra = teclado.nextLine();

        switch(palavra) {
        case "IFSC":       
        case "IFRS":
                System.out.println("É instituto federal");
                break; 
        default:
                System.out.println("outra coisa");
                break;    /* a opção default é opcional */
        }
        
     }
}

Exercício 1

Implementar um programa Java, usando switch(), onde será fornecido o dia da semana na forma de uma string: "Segunda", "Terça" etc. O programa deve dizer se é final de semana ou dia de semana.

Exercício 2

Implementar um programa Java usando switch(), que recebe como entrada uma string com o código da disciplina de ADS e deve então informar se a disciplina é da FASE 1, FASE 2 etc.