【发布时间】:2014-10-16 21:40:20
【问题描述】:
我一直在绞尽脑汁想弄清楚为什么我的程序没有正确循环。而不是得到每个小时的增量,我只得到最后的小时/速度。所以如果我说我要以 40 英里/小时的速度行驶 3 小时,我只会得到 120 英里。
问题来了:
车辆行驶的距离可以计算如下: 距离 = 速度 * 时间 例如,如果一列火车以每小时 40 英里的速度行驶三个小时,则行驶距离为 120 英里。编写一个程序,询问车辆的速度(以英里/小时为单位)和已行驶的小时数。它应该使用循环来显示车辆在用户指定的时间段内每小时行驶的距离。例如,如果一辆车以 40 mph 的速度行驶了三个小时,它应该显示类似于以下的报告: 行驶的小时距离
1 40
2 80
3120
import java.util.Scanner;
public class Distance{
public static void main(String [] args){
Scanner keyboard = new Scanner(System.in);
int time , speed , hour;
double distance;
System.out.println("How fast were you going ?");
speed = keyboard.nextInt();
while(speed<=0)
{
System.out.println("Please enter a valid speed ");
speed = keyboard.nextInt();
}
System.out.println(" How long did you ride / drive ?");
time = keyboard.nextInt();
while(time<=0)
{
System.out.println("Please enter a valid time ");
time = keyboard.nextInt();
}
System.out.println(" Hour Distance");
System.out.println("---------------------------------");
hour = 0;
for( int x = 1; x<=time; x++)
{
hour++;
if(hour>1)
{
distance = time * speed;
System.out.println(time+ " " +distance);
}
}
}
}
【问题讨论】:
-
distance = hour * speed;而不是distance = time * speed; -
另外,在你的 for 循环中,你可以只使用
x而不是hour。如果有帮助,您可以先删除hour的所有实例,然后将hour重命名为x