2011-11-30 221 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