All variables are declared and Eclipse is not pointing any errors in the whole code.
What I need to do: The user can only choose between 1, 2 and 3. Any other input, including texts (example: test ) and other numbers example: 4 ) should acknowledge error (so the last JOptionPane
) and resume the piece of code (hence do-while
). If the user enters numbers 1, 2 or 3, the do-while
must be broken (so the brake
s) and another question (which follows the same schema) appears on the screen.
Before, I was giving everything right. If the user entered "4", the program actually reported error and restarted the question. But when the user entered with a text, the program closed. Probably because opção
was being transformed into int
. Then I thought about turning opção
to int
only if the user had already entered with the allowed options. But then it started to loop endlessly.
Here is the current code (with problem):
do{
opção=JOptionPane.showInputDialog(null, cabeçalho+inícioP1+código+espaço+"está alinhada com quantos objetivos da Estratégia da Empresa?"+digite+opção11+"2 ou mais"+opção12+"Apenas 1"+opção13+"Nenhum", cabeçalho, JOptionPane.PLAIN_MESSAGE);
if(opção=="1" || opção=="2" || opção=="3"){
opçãoI=Integer.parseInt(opção);
if(opçãoI==1){
pontos1=pontos1+9;
break;
} else if(opçãoI==2){
pontos1=pontos1+6;
break;
} else if(opçãoI==3){
pontos1=pontos1+3;
break;
}
} else {
JOptionPane.showMessageDialog(null, "Você selecionou uma opção inválida. Clique em \"OK\" para retornar.", erro, JOptionPane.PLAIN_MESSAGE);
}
} while(opçãoI!=1 || opçãoI!=2 || opçãoI!=3);
And here's the old code:
do{
opção=JOptionPane.showInputDialog(null, "Bem-vindo ao Console de Priorização de Ideias da Nova A3 (v.1.0.0).\n\nDigite o Código ou o Nome da Ideia.", "BEM-VINDO", JOptionPane.PLAIN_MESSAGE);
código=opção;
do{
opção=JOptionPane.showInputDialog(null, cabeçalho+inícioP1+código+espaço+"está alinhada com quantos objetivos da Estratégia da Empresa?"+digite+opção11+"2 ou mais"+opção12+"Apenas 1"+opção13+"Nenhum", cabeçalho, JOptionPane.PLAIN_MESSAGE);
opçãoI=Integer.parseInt(opção);
if(opçãoI != 0 || opçãoI == 0){
if(opçãoI==1){
pontos1=pontos1+9;
break;
} else if(opçãoI==2){
pontos1=pontos1+6;
break;
} else if(opçãoI==3){
pontos1=pontos1+3;
break;
}
} else {
JOptionPane.showMessageDialog(null, "Você selecionou uma opção inválida. Clique em \"OK\" para retornar.", erro, JOptionPane.PLAIN_MESSAGE);
}
JOptionPane.showMessageDialog(null, "Você selecionou uma opção inválida. Clique em \"OK\" para retornar.", erro, JOptionPane.PLAIN_MESSAGE);
} while(opçãoI!=1 || opçãoI!=2 || opçãoI!=3);