[英]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,什么也做不到。可能還有更多。
編輯
正如其他人已經指出的那樣,下降存在無限循環。
有兩個問題:
在構造函數中,您沒有設置m
和d
,而是設置了x
和y
,這沒有任何作用。
同樣,在while循環中,您不會更新t
, v
和z
。 相反,您只是將臨時值設置回原始值。
while ( z>= 0.0)
這就是問題。 while循環永遠不會改變變量z,因此循環永遠不會結束,也永遠不會到達您的print語句。
看起來您陷入了無限循環。 您的z(您將其設置為h為10)始終大於或等於0.0。 您應該使用更好的縮進,並且由於我很確定您是學生,因此請考慮使用更有意義的標識符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.