Básico do básico

[code]int 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");
		
	}.......[/code]

Como faço para reiniciar o laço se não for atingida a condição???

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.

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);

Eu não usaria um loop rotulado não. É bom evitar isso.

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.

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…

Q laço?
Provavelmente um while certo!

faz assim

[code] import javax.swing.JOptionPane;
public class Teste {
public static void main(String[] arg){
Condicao:
while (sua condição) {
int 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");
	    		continue Condicao;	
	    		}

	   }
   }

}

[/code]