Se não me engano a utlização de um “Label” ou “Rotulo”, pode solucionar teu problema. Porem não sei ao certo como sua utilização.
danieldestro
Primeiro que isso não é um laço. Laço é FOR ou WHILE.
Faça assim:
int opcao = 0;
do {
opcao = Integer.parseInt(JOptionPane.showInputDialog ("Escolha a Figura \n1 Quadrado \n2 Triângulo \n3 Círculo \n4 Sair" ));
if (opcao < 1 || opcao > 4) {
JOptionPane.showMessageDialog(null,"Você digitou opção inválida");
}
} while(opcao < 1 || opcao > 4);
rmarin
Eu não usaria um loop rotulado não. É bom evitar isso.
A
arviana
Acho que coloquei errado a coisa. Tenho o menu com a entrada de 4 opções. O que estou querendo é que se o user digitar um valor fora das opções o programa informe que ele errou e mostre novamente as opções e daí dê continuidade ao resto dos comandos. Pelos exemplos com DO/WHILE ele fica no laço indefinidamente pois ele não retorna ao menu inicial. Acho que agora expliquei melhor o que eu quero.
I
inicjava
Você pode fazer da seguinte maneira: Usando o switch.
int opcao = 0
while (opcao != 4){
opcao = Integer.parseInt(JOptionPane.showInputDialog ("Escolha a Figura \n1 Quadrado \n2 Triângulo \n3 Círculo \n4 Sair" ));
switch(opcao){
case 1: //implementacao;
break; //é necessário o break, pq senão o switch executará todas as opções
case 2: //implementação;
break;
//e quantas opções desejar
default: JOptionPane.showMessageDialog(null,"Você digitou opção inválida"); //entra no default todas as opções que forem diferentes
break;.
}
}
Assim repete o menu, da forma que vc queria, qualquer coisa é só falar…
I
info_god
Q laço?
Provavelmente um while certo!
faz assim
importjavax.swing.JOptionPane;publicclassTeste{publicstaticvoidmain(String[]arg){Condicao:while(suacondição){intopcao=Integer.parseInt(JOptionPane.showInputDialog("Escolha a Figura \n1 Quadrado \n2 Triângulo \n3 Círculo \n4 Sair"));if(opcao<1||opcao>4){JOptionPane.showMessageDialog(null,"Você digitou opção inválida");continueCondicao;}}}}