簡體   English   中英

在Java中運行程序后無輸出

[英]No output after running the program in java

我需要創建一個名為“ ParticleDropClass”的“主”類。 該類的目的是計算重物落入裝有粘性液體的容器底部所需的時間。

public class ParticleDropClass {
    double m;
    double d;
    double z;
    double t;
    double v;

    public ParticleDropClass (double x, double y){x=m;y=d;} // creating a constructor 

    public  final double g= 9.81 ;//constants
    public final double  h = 10.0;//constants

    public void drop(double dt ){
        t=0;v=0;
        double  z=h;// intial height at 10m
        while ( z>= 0.0){
            double  a= (d*v*v)/m-g;// formula for body's acceleration
            double dv= a*dt;
            double dz=v*dt ;
            double z1= z+dz;
            double v1= v+dv;
            double t1=t+dt;
            t1=t;
            v1=v;
            z1=z;
        }

        System.out.println("t ="+t +"dt="+t+"s"+ "\n"+"final v="+v+"m/s" );
    }

    public static void main(String[] args) {
        double m=4.3;double d=2.5 ;
        ParticleDropClass b= new ParticleDropClass(m,d);// for an object of               mass 4.3 and 2.5 , at height 0.5 I create a object .
        b.drop(0.5);
    }
}

但是我運行上面的代碼沒有任何反應,為什么?

因為z的值永遠不會改變,所以您在drop有一個無限循環。 另外,我建議您修復縮進和換行。 使用Eclipse等IDE可以輕松修復它。

我想你打算寫:

z = z1;
t = t1;
v = v1;

並且在建設者中:

m = x;
d = y;

左操作數獲取右操作數的值。

     public ParticleDropClass (double x, double y){
       x=m;
       y=d;
      }

這是顯而易見的問題。 這只會使x和y為0,什么也做不到。可能還有更多。

編輯

正如其他人已經指出的那樣,下降存在無限循環。

有兩個問題:

在構造函數中,您沒有設置md ,而是設置了xy ,這沒有任何作用。

同樣,在while循環中,您不會更新tvz 相反,您只是將臨時值設置回原始值。

while ( z>= 0.0)

這就是問題。 while循環永遠不會改變變量z,因此循環永遠不會結束,也永遠不會到達您的print語句。

看起來您陷入了無限循環。 您的z(您將其設置為h為10)始終大於或等於0.0。 您應該使用更好的縮進,並且由於我很確定您是學生,因此請考慮使用更有意義的標識符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM