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

travei…
public static void main(String[] args) {
float a,b = 3,divisor,resto;
char grade = 0;
Scanner scan = new Scanner(System.in);
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;
        }
        
        
}

}

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.

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

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");
}
1 curtida

opa obrigado!
mas preciso usar a estrutura switch case…

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).

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

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.

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

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.

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");

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?