【发布时间】:2017-03-30 11:56:43
【问题描述】:
我应该为高中的编程课编写一个程序。程序要求用户输入以秒为单位的时间,并使用常用公式 d = 1/2 * g * t ^ 2 计算下落距离。D 是距离(结果),g 等于 9.8,t 是时间用户输入。由于某种原因,我们应该调用该方法 10 次。这是我的问题:无论用户输入的时间是什么,该方法总是返回相同的结果(第一次迭代中为 4.9)。我做错了什么?
import javax.swing.JOptionPane;
public class fallingDistance {
public static void main(String[] args){
String input;
double time;
input = JOptionPane.showInputDialog("Enter the time in seconds: ");
time = Double.parseDouble(input);
System.out.println(time);
for(int x=1; x<=10; x++){
JOptionPane.showMessageDialog(null, "The falling distance is: " + calculate(x) + "m.");
}
}
public static double calculate(double time){
double g = 9.8, a=0.5;
double distance = (a*g) * (Math.pow(time, 2.0));
JOptionPane.showMessageDialog(null, distance);
return (distance);
}
}
【问题讨论】:
-
您要求时间,但您没有将其传递给计算方法。除了打印它,你什么也不用做。你确实从循环中传递了 x 值,所以它总是 1-10 秒。
-
因为这是一个编程课,我希望你不介意你对你的代码发表评论。您应该将 for 循环更改为
for(int x=0; x<10; x++)。您的循环没有错,但更常见的是您的迭代器从 0 开始。
标签: java loops methods distance