Galera, estou fazendo uma classe apenas para aprimorar um pouco o que estava aprendendo no curso que fiz.
Mas estou tentando converter para double a variável media, mas não consigo, fica com erro.
estou colocando o código que fiz para aqueles que puderem me dar uma dica.
desde já agradeço à todos.
importjavax.swing.JOptionPane;publicclassEntradaDadosMediaJoptinPane{publicstaticvoidmain(String[]args){doublenota1=0,nota2=0,media=0;nota1=Double.parseDouble(JOptionPane.showInputDialog("Digite a 1ª nota.: "));if(nota1>=0&¬a1<11){nota2=Double.parseDouble(JOptionPane.showInputDialog("Digite a 2ª nota.: "));if(nota2>0&¬a2<11){media=(nota1+nota2)/2;JOptionPane.showMessageDialog(null,"A sua média foi: "+media);}else{JOptionPane.showMessageDialog(null,"2ª Nota Inválida.");}}else{JOptionPane.showMessageDialog(null,"1ª Nota Inválida, sua média ficará sem média");}//tenteiconvertermasnãofuncionou.doublemedia=Double.parseDouble(JOptionPane.showMessageDialog(null,"Será que vc passou?"));switch(media){//erroestáaqui...case0-4:JOptionPane.showMessageDialog(null,"Reprovado.");break;case5-6:JOptionPane.showMessageDialog(null,"Aprovado no sufoco.");break;case7-9:JOptionPane.showMessageDialog(null,"Aprovado.");break;case10:JOptionPane.showMessageDialog(null,"Parabéns, você foi um sucesso.\nContinue assim que você terá muito sucesso!!!");break;default:JOptionPane.showMessageDialog(null,"Média Inválida.");break;}}}
Você está declarando novamente uma variável que já existe ( media )
E você está tentando colocar o que na variável média? pois você está emitindo uma mensagem e não esperando um valor…a 2ª linha vai falhar sempre…é ai onde está o erro e não no switch!
double nota1 = 0, nota2 = 0, media = 0;
double media = Double.parseDouble(JOptionPane.showMessageDialog(null,"Será que vc passou?"));
ramilson.silva
na variavel media esta recebendo nota1 e nota2 dividindo por 2.
mas o problema esta dando no switch quando declaro dessa forma abaixo.
switch (media) {//erro está aqui...
case 0 - 4:
JOptionPane.showMessageDialog(null, "Reprovado.");
break;
case 5 - 6:
JOptionPane.showMessageDialog(null, "Aprovado no sufoco.");
break;
case 7 - 9:
JOptionPane.showMessageDialog(null, "Aprovado.");
break;
case 10:
JOptionPane
.showMessageDialog(null,
"Parabéns, você foi um sucesso.\nContinue assim que você terá muito sucesso!!!");
break;
default:
JOptionPane.showMessageDialog(null, "Média Inválida.");
break;
}
hodrigohamalho
Kra você ta duplicando a variável media,
e .showMessageDialog não retorna nada, acho que no caso você está querendo usar uma showInputDialog
dfsilva86
O erro não está no switch.
Está na linha 32. Você não pode fazer isso
doublemedia=Double.parseDouble(JOptionPane.showMessageDialog(null,"Será que vc passou?"));
e um detalhe que eu vi no seu switch
switch (media) {
case 0 - 4: //seu aluno NUNCA vai ser reprovado, como você vai tirar 4 de 0 ????????
JOptionPane.showMessageDialog(null, "Reprovado.");
break;
case 5 - 6: //seu aluno NUNCA vai ser aprovado no sufoco, ele nunca vai ter uma nota -1...só se for mto burro e
//mesmo assim deveria ser reprovado né....
JOptionPane.showMessageDialog(null, "Aprovado no sufoco.");
break;
case 7 - 9: //seu aluno NUNCA vai ser aprovado, com nota igual a 2 ele deve ser reprovado...
JOptionPane.showMessageDialog(null, "Aprovado.");
break;
case 10:
JOptionPane
.showMessageDialog(null,
"Parabéns, você foi um sucesso.\nContinue assim que você terá muito sucesso!!!");
break;
default:
JOptionPane.showMessageDialog(null, "Média Inválida.");
break;
}
Reveja seus cálculos…eu acho que você queria algo entre um valor e outro…desconheço como fazer se alguém souber posta ai…
hodrigohamalho
pra esse caso
ou você usaria algo do tipo:
case0:case1:case2:case3:case4:[comando]break;
apesar de achar mais prático um if ai.
e como dito acima a linha
doublemedia=Double.parseDouble(JOptionPane.showMessageDialog(null,"Será que vc passou?"));
showMessageDialog tem retorn void, poque só mostra mensagem na tela, pra isso ficar correto, deveria mudar essa variável que está duplicada
e por um showInputDialog:
doublemedia2=Double.parseDouble(JOptionPane.showInputDialog(null,"Será que vc passou?"));
ramilson.silva
Vlw pessoal, vou usar if no lugar do switch.
obrigado pelas dicas.
é que estou fazendo um calculo de média e comecei a colocar mais informações, e pensei que o switch ficaria legal, mas imagino que o if resolve sem problemas.
abraço a todos, mas se tiver alguem que conseguiu descobrir a minha cagada no switch e quiser postar aqui eu agradeço.
vlw.
B
Bruno_Laturner
Doubles não podem ser usados em switches, somente byte, short, char, int, suas classes wrapper e enums
ramilson.silva
Vlw Bruno pela dica, então provavelmente esse foi a merda do erro, mas consegui fazer com If.