public class Pi
{
public static void main(String[] args)
{
int t=0;
double result=0;
while(true)
{
t++;
double value=4.0/(2*t-1);
if(t%2==1) result+=value;
else result-=value;
System.out.println(result);
if(result>3.1415926&&result<3.1415927) break;
}
System.out.println(t);
System.out.println(result);
}
}

解决方案 »

  1.   


    public class Pi {
    public static void main(String[] args) {
    int t = 0;
    double result = 0;
    while (true) {
    t++;
    double value = 4.0 / (2 * t - 1);
    if (t % 2 == 1)
    result += value;
    else
    result -= value;
    //System.out.println(result) 把这句去掉
    if (result > 3.1415926 && result < 3.1415927) 
    break;

    }
    System.out.println(t);
    System.out.println(result);
    }
    }
      

  2.   

    public class Pi {
    public static void main(String[] args) {
    int t = 0;
    double result = 0;
    while (true) {
    t++;
    double value = 4.0 / (2 * t - 1);
    if (t % 2 == 1)
    result += value;
    else
    result -= value;
    //System.out.println(result);去掉
    if (result > 3.1415926 && result < 3.1415927)
    break;
    }
    System.out.println(t);
    System.out.println(result);
    }
    }
      

  3.   

    if...else...后面也养成加大括号的习惯
      

  4.   

    因为你打印的位置在循环体中,只有在循环打印18660304次才结束 
    如果你想打算在循环中打印result,那么可以这样写 
    public class Pi {
    public static void main(String[] args)
    {
    int t=0;
    double result=0;
    while(true)
    {
    t++;
    double value=4.0/(2*t-1);
    if(t%2==1) result+=value;
    else result -= value;
    if(result>3.1415926&&result <3.1415927) 
    {
    System.out.println(result);
    break;
    }

    }
    System.out.println(t);
    System.out.println(result);
    } }