2011-11-30 127 views
1

为什么循环计数不正确?如果我将变量runs设置为3,则循环运行4次。 (一个额外的情况。)For循环无法正常工作

在此先感谢!

for (int i = runs; i >= 0; i--) 
{ 
    System.out.println("Input Duration of Trip"); 
    Scanner timeCalc = new Scanner(System.in); 
    System.out.print("Hours ==> "); 
    int hour = timeCalc.nextInt(); 
    System.out.print("Minutes ==> "); 
    int minute = timeCalc.nextInt(); 
    System.out.println("You entered: " + hour + " hour(s) and " + minute + " minutes"); 
    System.out.println(); 
    time = convertHoursMinutesToDouble(hour, minute); 
    totalTime += time; 
} 

回答

1

你错就错在

i>=0 

什么代码正在做的是去“行,我将是等于三现在,让我们来看看,好不好,再次备份,减一,i = 2 ...减一个i = 1 ...现在棘手棘手它SKIPS代码的终止部分,因为它首先看它,之前减去一个,所以我= 0,好吧等我= 0所以停止。“

解决方案?

for (int i = runs; **i >= 1**; i--) 

这个错误总是把我弄糊涂了。 希望整个“通过电脑的东西”不会打扰你。我就是这么想的。

快乐编码!

0

因为你已经设置为大于或等于...

于是开始于3并进,2,1,0。

5

的回路值运行:

3 
2 
1 
0 

这是4倍。

如果你想让它的值3,2和1运行,你可以改变你的for循环:

for (int i = runs; i > 0; i--) 

for (int i = runs; i >= 1; i--) 
1
i == 3 
i >= 0 
println 

i-- 
i == 2 
i >= 0 
println 

i-- 
i == 1 
i >= 0 
println 

i-- 
i == 0 
i >= 0 
println 

这是4倍。你需要你的条件是:I> 0