Erro de compilação, HELP![RESOLVIDO]

3 respostas
P

Galera, sou novato em java e estou com um problema em um exercício que parece ser simples de resolver, fiz o teste de mesa e vi que da certo, só que eu como sou novato pode ser que passou alguma coisa despercebida, quando eu vou tentar compilar no NetBeans ele trava, eu também tento compilar no CMD e fala que não foi possível ler, então não tem como eu saber qual linha está o erro.
Eu acho que é um loop infinito, mais não tem cara de ser… desde já agradeço a ajuda ao pobre coitado do iniciante aqui…

public class Main
{

public static void main(String[] args)
{
  double num1 = 2, num2 = 50, resultado = 0, resultado2 = 0, resultadopot = 0;
  int potencia = 1;
  while(num2 >= 1 && potencia <= 50)
      resultadopot = Math.pow(num1,potencia); // guarda o resultado do cálculo da potência. num1 sempre será "2".
      resultado = (resultadopot/num2); // calcula uma fração.
      System.out.println("O resultado final é: " + (resultado + resultado2)); //Quero obter um resultado final até acabar o loop
      num2 = num2--; // decrementa o divisor
      potencia = potencia++; // Incrementa a potência
      resultado2 = resultado; // Resultado 2 vai acumular com o ultimo resultado, para poder obter o resultado final.
}

}

3 Respostas

pmlm

O ciclo apenas vai executar a linha seguinte ao while, que nunca vai alterar num1 nem potencia logo fica em ciclo infinito.

Como queres que sejam executadas várias linhas, tens de por as linhas entre {} depois do while.

Tiberio

Perfeito o que o pmlm disse, e outra coisa…

num2 = num2–; // decrementa o divisor
potencia = potencia++; // Incrementa a potência

Essas duas linhas, não é necessário uma atribuição de um incremento ou decremento, simplesmente você faz:

num2-- ;
potencia++ ;

Abraços

P

Vlw galera, obrigado tiberio, coloquei os comandos do loop dentro de {}, ai funciono, mais começo a dar loop infinito, ai eu fiz o que vc falo Tiberio, tirei que o num2 = num2-- e saiu o loop infinito, muito obrigado.
ENTÃO O CÓDIGO FICO ASSIM...

public class Main
{

    public static void main(String[] args)
    {
      double num1 = 2, num2 = 50, resultado = 0, resultado2 = 0, resultadopot = 0;
      int potencia = 1;
      
      while((num2 >= 1) && (potencia <= 50))
      {
          System.out.println("O resultado final é: " + resultado2); //Quero obter um resultado final até acabar o loop
          resultadopot = Math.pow(num1,potencia); // guarda o resultado do cálculo da potência. num1 sempre será "2".
          resultado = (resultadopot/num2); // calcula uma fração.
          num2--; // decrementa o divisor
          potencia++; // Incrementa a potência
          resultado2 = resultado + resultado2; // Resultado 2 vai acumular com o ultimo resultado, para poder obter o resultado final.
      }   
    }
}
Criado 8 de novembro de 2009
Ultima resposta 8 de nov. de 2009
Respostas 3
Participantes 3