dúvida

2 respostas
Max_Pfeffer
class SerieMatematica {
    int x, y, i;
    
    SerieMatematica(){
        y=4;
        x=10;
    }

    SerieMatematica(int n, int n2){
        x=n;
        y=n2;
    }
    
    public int elevarX(){
        int Res=x;
        for(i=1;i<y;i++){
            Res=Res*x;
        }
        return Res;
    }

    public float calcularPiQuadradoSobre8(){
        float Res=0;
        y=12;
        for(i=1;i<=x;i++){
            Res=Res+(1/y);
            y=y+20;
        }
        return Res;
    }
}

A minha dúvida está no método calcularPiQuadradoSobre8, ele está retornando sempre o Res=0, dando a impressão que o "for" ta sendo pulado

2 Respostas

roassunca

Max Pfeffer,

se vc debugar o seu código vai ver que o seu for não está sendo pulado.
O problema está na linha 26 do seu código:

Res=Res+(1/y);

Pois 1 é um inteiro e y também é do tipo inteiro, então fazendo a divisão e arredondando o resultado para um inteiro, vai dar sempre zero.

Inlcua um “f” depois do 1 para dizer a JVM que se trata de um ponto flutuante:

Res=Res+(1f/y);
Max_Pfeffer

Valeu, era isso mesmo…

Criado 26 de fevereiro de 2009
Ultima resposta 26 de fev. de 2009
Respostas 2
Participantes 2