循环和显示混乱

时间:2013-10-20 02:22:43

标签: java

如果这看起来像一个简单的问题我很抱歉,但是我有一个问题,我试图解决这个问题,并且我已经非常了解如何正确显示结果。所以基本上它要求接受一定距离的汽车的用户输入。所以我使用扫描仪对象来获取时间(以小时为单位)以及速度(mps)。所以为了获得距离,你只需将这两个值相乘即可。但我的问题在于显示,我使用for循环显示用户每小时行进的距离(从1开始 - 直到达到用户输入的时间)for循环看起来像这样:

    // Calculate and display distance traveled
    distance = speed * time;
    System.out.println("Hour Distance Traveled");
    System.out.println("--------------------------");

    for (time =1; time <= distance/speed; time++)
    {
             System.out.println(time + "\t" + distance);
    }

所以我显然坚持如何以递增的形式显示距离,比如时间显示方式,我不确定如何去做,更重要的是如果for循环是合适的在这种情况下使用循环。我没有要求为我完成问题,但我会感谢任何有关如何解决问题或我做错的建议或解释。

4 个答案:

答案 0 :(得分:2)

在循环的每次迭代中,您希望将时间(在当前迭代中)乘以速度,而不是使用最终计算的距离。

所以:

System.out.println("" + time + "\t" + ( time * speed ) );

应该适合你。

编辑详细阐述以回答评论

您执行两次相同的任务。一旦计算结果,一个用于跟踪。您可以连接这两个,这样就可以显示计算的进度。当然,如果你不需要打印任何东西,你可以像你一样进行乘法......

/* time and speed received from user. */
/* initialize distance */
distance = 0;
for (int i = 1; i <= time; i++)
{
    /* increment distance in each iteration */
    distance += speed;
    /* print as you progress */
    System.out.println(i + "\t" + distance);
}

答案 1 :(得分:1)

  

我使用扫描仪对象来获取时间(以小时为单位)以及时间   速度(MPS)。

好吧,如果我理解正确的话,这可能就是你想要的:

for (time =1; time <= inputTime; time++)
    {
            distance = inputSpeed * time;
             System.out.println(time + "\t" + distance);
    }

答案 2 :(得分:1)

for (time =1; time <= endTime; time++)
{
         distance = speed * time;
         System.out.println(time + "\t" + distance);
}

你只需要更新循环中的距离

答案 3 :(得分:0)

您因为尝试重复使用相同的变量而感到困惑,并且#34;时间&#34;和&#34;距离&#34;对于同一代码块中的两个不同的东西 - 既可以用于整个行程,也可以用于每个小时块。使用不同的变量名称,它变得更加容易。

所以,你读了#34;时间&#34;和&#34;距离&#34;旅行 - 以便&#34; tripHours&#34;和&#34; tripDistance&#34;。

在你的循环中,你需要计算小时数,所以你可能有类似的东西:

int tripDistance = speed * tripHours;
for (int hour = 1; hour <= tripHours; hour++)
    int distance = hour * speed;
相关问题