繁体   English   中英

循环和显示混乱

[英]Loop and display confusion

如果这看起来像一个简单的问题我很抱歉,但我有一个问题,我正在努力解决,并没有完全了解如何正确显示结果。 所以基本上它要求接受一定距离的汽车的用户输入。 所以我使用扫描仪对象来获取时间(以小时为单位)以及速度(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循环是在这种情况下使用的适当循环。 我不是要求为我完成问题,但我会感谢任何关于如何解决它或我做错了什么的建议或解释。

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

所以:

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);
}

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

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

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

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

你正在陷入混乱,因为你试图在同一个代码块中为两个不同的东西重复使用相同的变量“time”和“distance” - 既可以用于整个行程,也可以用于每个小时块。 使用不同的变量名称,它变得如此简单。

所以,你读了一段旅程的“时间”和“距离” - 这就是“tripHours”和“tripDistance”。

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

int tripDistance = speed * tripHours;
for (int hour = 1; hour <= tripHours; hour++)
    int distance = hour * speed;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM