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_Methods_Distance - Fatal编程技术网

Java:方法总是返回相同的结果

Java:方法总是返回相同的结果,java,loops,methods,distance,Java,Loops,Methods,Distance,我应该为高中的编程课写一个程序。该程序要求用户以秒为单位输入时间,并使用通用公式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(St

我应该为高中的编程课写一个程序。该程序要求用户以秒为单位输入时间,并使用通用公式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);
    }
}
import javax.swing.JOptionPane;
公共类下降距离{
公共静态void main(字符串[]args){
字符串输入;
双倍时间;
input=JOptionPane.showInputDialog(“以秒为单位输入时间:”;
时间=Double.parseDouble(输入);
系统输出打印LN(时间);


对于(int x=1;x您正在将
x
传递给计算方法。请尝试将
time
传递给计算方法。

您正在将
x
传递给计算方法。请尝试将
time
传递给计算方法。

为什么说返回(距离)?我想你得把支架取下来。如果有帮助,请告诉我。

你为什么说返回(距离)?我认为您必须删除括号。如果有帮助,请告诉我。

您要求时间,但不将其传递给计算方法。除了打印它之外,您什么都不做。您确实从循环中传递了x值,因此它总是1-10秒。因为这是一个编程类,我希望您不介意对代码进行注释。您应该将for循环更改为
for(int x=0;xy您请求时间,但不将其传递给calculate方法。除了打印它之外,您不使用它。您确实从循环中传递了x值,因此它总是1-10秒。由于这是用于编程类,我希望您不介意对代码进行注释。您应该将for循环更改为
for(int x=0;x谢谢。这是可行的,但现在每次循环迭代时程序都会给我相同的结果。我如何解决这个问题?每次迭代中应该有什么不同?您是否应该为循环更改行
(int x=1;x非常感谢!我刚上了课,试了试。对我来说非常有效。@HenrikDierker如果这是你要找的答案,请接受答案并将其标记为正确。谢谢。这很有效,但现在程序每次循环迭代时都会给我相同的结果。我如何修复它?应该有什么区别吗o是否在每次迭代中?您是否应该更改(int x=1;x非常感谢!我刚上了课,试了试。非常适合我。@HenrikDierker如果这是你要找的答案,请接受答案并将其标记为正确。谢谢你的答案,但没有做任何更改。@Henrik Dierker,在JOptionPane中分配它之前,请尝试计算(),例如,for(……){double out=calculate(time);JOptionPane……(“…”+out+“m”);}谢谢你的回答,不过没有改变任何东西。@Henrik Dierker,在你在JOptionPane中分配它之前,试试calculate(),比如(…){double out=calculate(time);JOptionPane……(“…”+out+“m”);}