Ajuda com erro em código

2 respostas
tiago.moraes

Boa tarde galera,

venho fazendo um trabalho pra minha faculdade e preciso montar um código pra cadastrar produtos entre outras funções.

então fiz este trecho de código:
String[] nomeProd, descricaoProd;
double[] estoqueProd, valorunProd;
int[] codigoProd;

valorunProd = new double[1000];
estoqueProd = new double[1000];
codigoProd = new int[1000];
nomeProd = new String[1000];
descricaoProd = new String[1000];

int indice = 0;

Scanner ler = new Scanner(System.in);

String escolha = null;

do {

   int sairCadastro = 0;

   codigoProd[indice] = indice;

   System.out.print("Nome: ");
   nomeProd[indice] = ler.next();
   System.out.println();

   System.out.print("Descrição do produto: ");
   descricaoProd[indice] = ler.next();
   System.out.println();

   System.out.print("Informe a quantidade do produto cadastrado: ");
   estoqueProd[indice] = ler.nextDouble();
   System.out.println();

   System.out.print("Informe o valor unitário do produto cadastrado: ");
   valorunProd[indice] = ler.nextDouble();
   System.out.println();

   System.out.print("Encerrar cadastro? ");
   escolha = ler.next();
   System.out.println();

   String opcao = escolha.substring(0,1);

   if (opcao.equalsIgnoreCase("s")) {

         sairCadastro = 1;

   } else {
                
         sairCadastro = 0;
                
   }

   indice++;

} while (sairCadastro = 0);
Porém ele não compila, pois dá um erro na linha
} while (sairCadastro = 0);
dizendo que não foi possível localizar a variável sairCadastro. Ainda não consegui entender o porquê desse erro.

Se alguém puder me ajudar eu agradeço.

2 Respostas

jamirdeajr

Não analisei todo seu código mas o que pude notar:

1) sairCadastro foi declarada entre os { } então ela só existe lá.. para o while(sairCadastro = 0) que está fora ela não existe. Declare ela antes do'do {'
2) Tem que ser while(sairCadasttro == 0) e não while(sairCadastro = 0). = em java é atribuição de valor, para comparação tem que usar ==

int sairCadastro = 0;  
do {  
    codigoProd[indice] = indice;  
    ...  

    indice++;  
} while (sairCadastro == 0);
tiago.moraes

Muito obrigado Jamir,

Quanto à igualdade comparativa do while (ou do if) eu já tinha conhecimento…porém acabei digitando incorretamente, sabia também que uma variável só existe dentro de um bloco entre {} (se esta variável for declarada em um bloco externo ela existirá em um bloco interno, mas não o contrário). Mas não sabia que neste caso, na condição while, eu deveria declarar minha variável fora do bloco.

Valeu cara…

Criado 17 de abril de 2011
Ultima resposta 17 de abr. de 2011
Respostas 2
Participantes 2