Mudanças entre as edições de "Pensamento Computacional - Switch no Java - Parte 1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 63: Linha 63:
 
=Comando switch combinado com caracteres=
 
=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).
+
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:
  
 
<syntaxhighlight lang=java>
 
<syntaxhighlight lang=java>
Linha 78: Linha 78:
 
         switch(caracter) {
 
         switch(caracter) {
 
         case 'a':
 
         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 */
 +
        }
 +
       
 +
    }         
 +
}
 +
</syntaxhighlight>
 +
 +
Olhando na tabela ASCII observa-se qie o caracter 'a' é o número inteiro 65. Então o código acima também poderia ser colocado da forma:
 +
<syntaxhighlight lang=java>
 +
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  65:
 
         case 'e':
 
         case 'e':
 
         case 'i':
 
         case 'i':

Edição das 19h25min de 30 de outubro de 2023

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 qie 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  65:
        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 */
        }
        
     }          
}

Comando switch com strings

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 */
        }
        
     }
}