[Resolvido] Voltar para o inicio do script

Pessoal…

Como faço para sempre que um valor inserido na InputDialog for incompatível com o tipo o script voltar novamente para a Input ???

Tipo assim:

int qtd = Integer.parseInt(JOptionPane.showInputDialog(null, "Informe a Quantidade do Produto :", "Quantidade :", 2));

se for digitado um valor inteiro seguir normalmente o script, senão, abri-la novamente…

isso no método main da classe…

[quote=Danleonhart]Pessoal…

Como faço para sempre que um valor inserido na InputDialog for incompatível com o tipo o script voltar novamente para a Input ???

Tipo assim:

int qtd = Integer.parseInt(JOptionPane.showInputDialog(null, "Informe a Quantidade do Produto :", "Quantidade :", 2));

se for digitado um valor inteiro seguir normalmente o script, senão, abri-la novamente…

isso no método main da classe…[/quote]

Uma idéia rapida.

boolean possoSair = false;
while (!possoSair) {
    // aqui faz a movimentacao que vc quer fazer e passa true para a variavel
    possoSair = true;
}

GodZilla_XF
Não entendi… :shock:

pois conforme coloquei o script, se é digitado um número inteiro funciona normalmente…mas se digitado uma string, ou valor double, float, seja qual for diferente de inteiro vai dar erro…
o que quero é tratar esse erro de forma apenas a voltar para o inicio, ou seja, a chamada da Input…entendes ?!

[quote=Danleonhart]GodZilla_XF
Não entendi… :shock:

pois conforme coloquei o script, se é digitado um número inteiro funciona normalmente…mas se digitado uma string, ou valor double, float, seja qual for diferente de inteiro vai dar erro…
o que quero é tratar esse erro de forma apenas a voltar para o inicio, ou seja, a chamada da Input…entendes ?![/quote]

Olha, eu sou meio assim de fazer gambiarras, mas vc pode fazer isso


public void fazerOQueTemQueFazer() {
    try {
        // aqui dentro voce faz o que tem que ser feito, e se gerar um exception ele faz uma chamada recursiva ao metodo em questao.
    } catch (Exception e) {
        fazerOQueTemQueFazer();
    }
}

É usando try catch que quero fazer…
mas da maneira que você exemplifica tenho que colocar o script em um método e chamá-lo no main()
e caso haja um erro, através do catch chamaria novamente este método, correto ?!

estou tentando fazer tudo dentro do main()…mas acho que só vai assim mesmo :-o

VALEU ! 8)

[code]boolean possoSair = false;  
while (!possoSair) {  
     try {  
    // aqui dentro voce faz o que tem que ser feito, e se gerar um exception ele não faz nada e recursivamente o comporatmento acontece!
       possoSair = true;
     } catch (Exception e) {  
        
    }  

}[/code]

Resolvido !

Foi me passado o seguinte exercício:

[color=brown]Crie um algoritmo que deveremos escrever de 1 a 20 e se escrevemos algum fora da ordem deve gerar uma mensagem de erro pedindo para digitar correto[/color]

Então, fiz assim:

// Importando classe Java:
import javax.swing.*;

public class JavaExec4 {

	public static void main(String[] args) {
	// Iniciando aplicação a partir de método personalizado	(com parâmetro):
         Checagem(1);
	}
 // Método personalizado de inicialização da aplicação:
	public static void Checagem(int num ){

         // Iniciando rotina:
	     for ( ; num <= 5; num++){
	    	 
	    	int n = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite de 1 a 20 em ordem...",num + "º Valor" ,1));
/*               Condição de verificação:
	    	     se o número informado for diferente da sequência
	    	     o método "pega" o último valor da sequência e reinicia o método.
	    	     O "return" é para sair do "for"... senão o ciclo continuaria...
*/
	    	      if (n != num){
	    	    	  JOptionPane.showMessageDialog(null, "Digite na ordem numérica !", "Aviso !", 1);
	    	          Checagem(num);
	    	          return;
	    	      }
      
	     }
	}
}

Estou colocando comentários pois o Instrutor está exigindo… :smiley:

[color=blue]Obrigado pela força pessoal ![/color]