GetNat

Gente estou com problemas …

Tenho trabalho para entregar onde o professor escrever parte do código e temos que terminá-lo, mas esta dando o seguinte erro na linha abaixo:

static Integer GetNat(String msg, int liminf, int limsup)
{
String strin = new String(); // string para entrada de dados - um natural
Boolean erro =false; // indica erro na consistência da entrada de dados
try { // protege bloco de comando e desvia para o comando catch
do { // loop eterno até receber um natural válido
erro = false;
strin = “”;
strin = JOptionPane.showInputDialog(null,msg,titulo,JOptionPane.QUESTION_MESSAGE);
// consistência sobre pressionar botão Cancel ou fechar ao diálogo
if (strin == null) return null;
// consistência sobre pressionar botão OK sem texto
if (strin.length() == 0) {
JOptionPane.showMessageDialog(null," Erro : Caixa de diálogo Vazia !",
titulo,JOptionPane.ERROR_MESSAGE);
erro = true;
continue;
}
// consistência sobre o conteúdo do texto ser número natural (sem sinal)
for (int i=0 ; erro == false && i &lt strin.length(); i++)
if (strin.charAt(i) &lt ‘0’ || strin.charAt(i) &gt ‘9’) {
JOptionPane.showMessageDialog(null," Erro : Não é um Natural !",
titulo,JOptionPane.ERROR_MESSAGE);
erro = true;
}
// consistência sobre o intervalo do valor númerico
if (erro == false && (Integer.valueOf(strin).intValue() &lt liminf ||
Integer.valueOf(strin).intValue() &gt limsup)) {
JOptionPane.showMessageDialog(null," Erro : Fora do Intervalo !",
titulo,JOptionPane.ERROR_MESSAGE);
erro = true;
} // if
} while (erro == true);
} catch (Exception e) { System.out.println(“BUG na na Entrada de Dados !”); System.exit(0); }
return Integer.valueOf(strin).intValue();
} // GetNat
}// do

[color=red]Parte1.java:112: illegal start of expression
static Integer GetNat(String msg, int liminf, int limsup)
^[/color]

Vcs poderiam me ajudar?

kra, o erro n está ai… pode ateh tentar botar um public antes do metodo… mas axo q o erro n esta no metodo e sim em algo anterior a ele… anexa o codigo todo ai pra q o pessoal possa olhar direito

Olá, douglas_oliv21

Provavelmente é algum erro de sintaxe anterior a esta linha…

Verifique (ou poste) as últimas linhas anteriores a este método.

[color=blue][/color]Segue o código completo…

// pacotes importados na aplicação
import java.lang.*; // pacote importado por default (usa as classes
// System e Math
import java.util.Date; // importa a classe Date (não usa a class Sacanner)
import java.lang.Math; // classes System e Math
import java.util.Date; // classe Date (não usa a class Sacanner) e Stack
import javax.swing.JOptionPane; // classes JFrame e JLabel
import java.text.SimpleDateFormat; // classe SimpleDateFormat e DecimalFormat
import java.text.DecimalFormat; // classe SimpleDateFormat e DecimalFormat

class EDGxxSI2y_EDA02_SimRecTH extends Object // é opcional colocar extends Object
{
// referências para objetos com escopo global ao aplicativo

static Integer MAXDISCO = 5; // limite para entrada de dados
static String titulo = "EDGxxSI2y : EDA02_SimRec2TH"; // título das caixas de diálogos
static StringBuffer RegAti = new StringBuffer(); // lista de Registro Ativação
static StringBuffer Movimentos = new StringBuffer(); // lista dos Movimentos
static String movimentos = new String();

public static void main (String args[]) // main em aplicativo deve ser public static
{
// formata a data atual e mostra identificação do programa

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
String data = formatter.format(new Date()) ;
String str = new String(); // string para saída e entrada de dados
String identificacao = "Estruturas de Dados (e suas manipulações) - Prof. Leigo \n\n" +
" Simulação do Mecanismo da Recursão x Pilhas \n\n" +
" Puzzle Torres de Hanói (Brahma) - Towers of Hanoi \n\n" +
" EDGxxSI2y_EDA02SimRecTH.java \n\n" +
" 44.659 - Douglas de Oliveira - Participação 50 % \n" +
" 99.999 - Nome Completo2 - Participação xx % \n\n" +
" JCreator em " + data + " \n\n" +
" GUI simples sem tratamento de Evento - Versão Demo \n\n" ;

JOptionPane.showMessageDialog(null,identificacao,titulo,JOptionPane.INFORMATION_MESSAGE);

do { // faça até pressionar Cancel em qualquer caixa de diálogo para entrada

   Integer opcao = GetNat("              Escolha a opção desejada        \n\n" + 
                             "       [1]   Versão - Recursiva            \n" + 
                             "       [2]   Versão - Simula Recursiva \n" + 
                             "       [3]   Avaliação do Tempo            \n\n" + 
                             "          Cancel finaliza o Programa ! \n\n",1,3); 

   if (opcao == null) System.exit(0); // pressionou Cancel ou fechou o diálogo 

do { // faça até pressionar Cancel ou Botton No em OptionPane (GUI)
try { // protege bloco de comando e desvia para o comando catch
do {
erro = false;
opcao = "";
opcao = JOptionPane.showInputDialog(" EDGxxSI2y - Torres de Hanói (Brahma)\n" +
"Qual é a quantidade de discos entre 1 e " +
MAXDISCO + "? \n\n");
// consistência da entrada

       if (opcao.length() == 0) {
           JOptionPane.showMessageDialog(null,"EDGxxSI2y - Caixa de texto nula.");
           erro = true;
   	      }
       else 
          if (opcao.length() == 1 && str.charAt(0) == '0') {
              JOptionPane.showMessageDialog(null,"EDGxxSI2y - Zero não aceita.");
              erro = true;
             } 
          else
             {
              for (int i=0 ; i &lt opcao.length() ; i++)
                   if (opcao.charAt(i) &lt '0' || opcao.charAt(i) &gt '9') {
                   JOptionPane.showMessageDialog(null,"EDGxxSI2y - Não é um natural.");
                   erro = true; 
                   break;
                  }  
              if (erro == false && Integer.valueOf(opcao).intValue() &gt MAXDISCO) {
                  JOptionPane.showMessageDialog(null,"EDGxxSI2y - Natural fora do intervalo.");
                  erro = true;
                 } 
             } // else
      } while (erro == true || opcao.length() == 0); 

} catch (Exception e) {
JOptionPane.showMessageDialog(null,
"EDGxxSI2y - Cancel Finaliza.");
System.exit(0);
}

int n = Integer.valueOf(opcao).intValue(); // natural para quantidade de discos

iniciou = new Date();
inicio = new Date().getTime();

 }  while (true) ; // loop eterno até pressionar Cancel ou fechar diálogo de entrada 

} // método main

Se este for exatamente o seu método main, tá fácil de resolver…

Observe que você tem 03 “do” e apenas 02 “while”.

do { // faça até pressionar Cancel em qualquer caixa de diálogo para entrada 
    ...
      do { // faça até pressionar Cancel ou Botton No em OptionPane (GUI) 
    ...
          do { 
    ...
          } while (erro == true || opcao.length() == 0); 
    ...         
    } while (true) ; // loop eterno até pressionar Cancel ou fechar diálogo de entrada 

Aí, o compilador tenta pegar os proximos comandos para concluir o loop, mas eles geram erro da sintaxe…

PS: poste seus códigos entre as tags [code] e [/ code]