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