Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:循环内未计算双精度_Java_Loops_Double_Primitive Types - Fatal编程技术网

Java:循环内未计算双精度

Java:循环内未计算双精度,java,loops,double,primitive-types,Java,Loops,Double,Primitive Types,我尝试在一个单独的类中使用动画循环每10毫秒移动一个投射物。此循环的前两次迭代打印重力等于0,因为在开始时时间=0,所以重力应该只能在第一个循环上为零 public static void move() { System.out.println( "Time: " + time ); System.out.println( "gravity: " + gravity ); System.out.println( "g: " + g );

我尝试在一个单独的类中使用动画循环每10毫秒移动一个投射物。此循环的前两次迭代打印重力等于0,因为在开始时时间=0,所以重力应该只能在第一个循环上为零

  public static void move()
    {
        System.out.println( "Time: " + time );
        System.out.println( "gravity: " + gravity );
        System.out.println( "g: " + g );
        dX = Slingshot.getPullX();
        dY = Slingshot.getPullY();
        gravity = 0.5 * g * time * time;
        newX = (double) Slingshot.getStart().x + time * c * dX;
        newY = (double) Slingshot.getStart().y + ( time * c * dY + gravity );
        time = time + 1;

        new Projectile( newX, newY, dX, dY );
        trail = new Ellipse( ( int ) newX + 5, ( int ) newY + 5 );
        trail.setColor( Color.RED );
        trail.setSize( 2, 2 );
        projectileTrail.add( trail );
    }
以下是循环几次迭代后的输出:

Time: 0.0
gravity: 0.0
g: 2.0
Time: 1.0
gravity: 0.0
g: 2.0
Time: 2.0
gravity: 1.0
g: 2.0
Time: 3.0
gravity: 4.0
g: 2.0
Time: 4.0
gravity: 9.0
g: 2.0
Time: 5.0
gravity: 16.0
g: 2.0

在计算结果之前,您正在打印结果,因此第二个循环将显示您在第一个循环中计算的结果


只需将您的
println
s移动到循环的末尾。

您在计算结果之前打印结果,因此第二个循环将显示您在第一个循环中计算的结果


只需将您的
println
s移动到循环的末尾。

谢谢,我打印这些值是为了尝试找出我的错误,所以我认为重力为零导致了我的错误。看起来它在别的地方!谢谢,我正在打印这些值,试图找出我的误差是什么,所以我认为重力为零导致了我的误差。看起来它在别的地方!就像一个tipp:这一行
新投射物(newX,newY,dX,dY)很可能什么都不做。你创建了一个投射物,因为你没有对它做任何事情,它只会被垃圾收集很可能什么都不做。你创建了一个抛射体,因为你没有对它做任何事情,它只会被垃圾收集。