Pessoal estou entrando em switch case e estou com um dificuldades preciso fazer esse programa:Crie um programa que verifica se um número inteiro informado pelo usuário é divisível por 3

11 respostas
H
travei

public static void main(String[] args) {

float a,b = 3,divisor,resto;

char grade = 0;

Scanner scan = new Scanner(<a href="http://System.in">System.in</a>);

System.out.println("informe um valor: ");

a = scan.nextFloat();

divisor = (a/b);
if (divisor == 0){
            grade = 'A';
            }else
            System.out.println("NAO DIVISIVEL POR 3!");
        switch (grade){
            case 'A':
                System.out.println("Divisivel por 3");
                break;
        }
        
        
}

}

11 Respostas

darlan_machado

Primeiro que divisor não é o resultado da divisão.
Segundo que você precisa pegar o resto e verificar o mesmo e não o resultado da divisão.

H

sim, eu coloquei essa variavel pra fazer a divisao do numero A…

darlan_machado

Para começar, relembre como funciona uma divisão

Depois, você não precisa mais do que validar se o resto da operação é 0 ou não. Logo, este trecho está errado:

O operador que devolve o resto de uma operação de divisão é o %.
Logo, você deveria utilizar algo como:

resto = a % b;
if(resto == 0) {
    System.out.println(a + " é divisível por 3");
}
H

opa obrigado!
mas preciso usar a estrutura switch case…

darlan_machado

Você vai usar switch case quando você tiver mais de 3 opções (if/else if/else). Como são apenas 2, não há necessidade (afinal, ou é divisível por 3 e tem resto 0 ou não é e o resto é diferente de 0).

H

bom foi assim que o professor solicitou, mas obrigado pela ajuda!

darlan_machado

Posta o enunciado e vamos ver se é coerente o que ele pediu, afinal, eu não acho necessário.
Se você estivesse trabalhando com algo como identificar o mês, o dia da semana, etc, aí sim.

H
  1. Crie um programa que verifica se um número inteiro informado pelo usuário é
    divisível por 3.
darlan_machado

Sério, eu jamais optaria por resolver isso com um switch. Um if/else resolve.
Agora, se fosse algo como: desenvolva um programa em java que leia um número e retorne o dia da semana. Caso o número seja maior que 7 ou menor que 1, informe que o valor é inválido.

public class Semana {
    public static void main(String args[]){
        int num;
        String dia;
        System.out.println("Digite um número");
        num = Integer.parseInt(sc.nextLine());
        switch(num) {
            case 1:
                dia = "Segunda-feira";
                break;
            case 2:
                dia = "Terça-feira";
                break;
            case 3:
                dia = "Quarta-feira";
                break;
            case 4:
                dia = "Quinta-feira";
                break;
            case 5:
                dia = "Sexta-feira";
                break;
            case 6:
                dia = "Sábado";
                break;
            case 7:
                dia = "Domingo";
                break;
            default:
                System.err.println("Erro: número informado inválido");
                return;
        }
        System.out.println("Dia: " + dia);
    }
}

Entendeu? Sáo várias opções e com ifs, ficaria meio estranho.

H
fiz assim  e deu certo

public static void main(String[] args) {

int a, divisor;
Scanner scan = new Scanner(System.in);
    System.out.println("informe um valor: ");
    a = scan.nextInt();
    divisor = (a % 3);

    switch (divisor) {
        case 0:
            System.out.println("Divisivel por 3");
            break;
        default:
            System.out.println("Nao divisivel por 3");
Mike

Não há necessidade de switch, mas se o professor disse né, fazer o que…

if(a % 3 == 0)
   System.out.println("Divisivel por 3");
else
   System.out.println("Nao divisivel por 3");

Como o Darlan disse, é bem melhor com if/else não?

Criado 26 de março de 2018
Ultima resposta 26 de mar. de 2018
Respostas 11
Participantes 3