E ai pessoal tudo bem com vcs ?
Estou com um probleminha aqui … e sou novo na linguagem
tenho o seguinte codigo:
[code]
try {
String confirm1 = JOptionPane.showInputDialog(“1) Calculo com peso 7 de nota.\n” +
“2) Calculo com peso 8 de nota.\n” +
“3) Calculo com peso 9 de nota.\n\nDigite a opção desejada:”);
int confirm2 = Integer.parseInt(confirm1);
if (confirm2 == 1 || confirm2 == 2 || confirm2 ==3){
System.out.println(“aeee”);
}else {
//aqui;
}
}catch (Exception confirm2) {
JOptionPane.showMessageDialog(null,
"Digite somente o número existente nas opções!",
"ERRO NA DIGITAÇÂO", JOptionPane.ERROR_MESSAGE);
main(args);
}[/code]
então minha primeira duvida é :
- eu queria que quando a variavel ali no primeiro if fosse diferente de “1”,“2” ou 3 ele entra-se no else… e entrase no tratamento de erro mostrando a mensagem que ali tem ;
tipo se ele digita-se “4” apareceria “Digite somente o número existente nas opções!”
- alguem poderia me explicar certinho o que o main(args) esta fazendo ?
[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Erko[/color][/size] :joia:
Olá cara, se não estou enganado para você disparar uma exeção no catch você terá que usar a classe NumberFormatException. No entanto somente será disparada essa exeção se for digitado algum valor que não seja um numero.
Como sujestão para resolver o seu problema, utilize o switch(), veja o codigo abaixo.
[code]import javax.swing.JOptionPane;
public class Teste {
public static void main(String args[]) {
String confirm1 = JOptionPane.showInputDialog("1) Calculo com peso 7 de nota.\n" +
"2) Calculo com peso 8 de nota.\n" +
"3) Calculo com peso 9 de nota.\n\nDigite a opção desejada:");
int valor = Integer.parseInt(confirm1);//converte o valor para inteiro
switch(valor) {
case 1: System.out.println("aeee");break;
case 2: System.out.println("aeee");break;
case 3: System.out.println("aeee");break;
default: JOptionPane.showMessageDialog(null,
"Digite somente o número existente nas opções!",
"ERRO NA DIGITAÇÂO", JOptionPane.ERROR_MESSAGE); break;
}
System.exit(0);
}
}[/code]
Testa o codigo ae.
Até mais, Filipe.
O mais correto seria você fazer aquilo que o phill disse, entretanto, para todos os efeitos, podes tentar isso:
try {
String confirm1 = JOptionPane.showInputDialog("1) Calculo com peso 7 de nota.\n" +
"2) Calculo com peso 8 de nota.\n" +
"3) Calculo com peso 9 de nota.\n\nDigite a opção desejada:");
int confirm2 = Integer.parseInt(confirm1);
if (confirm2 == 1 || confirm2 == 2 || confirm2 ==3){
System.out.println("aeee");
}else {
throw new Exception("Digite Somente o número existente nas opções!");
}
}catch (Exception confirm2) {
JOptionPane.showMessageDialog(null,
confirm2.getMessage(),
"ERRO NA DIGITAÇÂO", JOptionPane.ERROR_MESSAGE);
main(args);
}
É necessário algumas alterações lógicas…