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
hallef
travei…publicstaticvoidmain(String[]args){floata,b=3,divisor,resto;chargrade=0;Scannerscan=newScanner(<ahref="http://System.in">System.in</a>);System.out.println("informe um valor: ");a=scan.nextFloat();divisor=(a/b);
if(divisor==0){
grade='A';}elseSystem.out.println("NAO DIVISIVEL POR 3!");switch(grade){
case'A':
System.out.println("Divisivel por 3");break;}
}
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
hallef
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
hallef
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
hallef
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.
publicclassSemana{publicstaticvoidmain(Stringargs[]){intnum;Stringdia;System.out.println("Digite um número");num=Integer.parseInt(sc.nextLine());switch(num){case1:dia="Segunda-feira";break;case2:dia="Terça-feira";break;case3:dia="Quarta-feira";break;case4:dia="Quinta-feira";break;case5:dia="Sexta-feira";break;case6:dia="Sábado";break;case7: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.
Scannerscan=newScanner(System.in);System.out.println("informe um valor: ");a=scan.nextInt();divisor=(a%3);switch(divisor){case0: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");elseSystem.out.println("Nao divisivel por 3");
Como o Darlan disse, é bem melhor com if/else não?