2016-05-12 41 views
-5

我在這裏寫了這段代碼。它應該打印出由用戶輸入確定的iteNum.length(數組),但它只執行一次迭代,然後停止。我無法弄清楚爲什麼。我的循環只經過一次

for (int i = 0; i < iteNum.length; i++) { 
    System.out.print("Num:" + (i+1) + " "); 

    for (i = 0; i < cMiles.length; i++) { 
     System.out.print(" (sc" + (i+1) + ":)" + cRandom[i] + " (tsc" + (i+1) + ":)" + df.format(cTimes[i]) + " "); 
    }     

    for (i = 0; i < fMiles.length; i++){ 
     System.out.print(" (sf"+ (i+1) + ":)" + df.format(fRandom[i]) + " (tsf" + (i+1) + ":)" + df.format(fTimes[i])+ " "); 
    } 

    System.out.print("(cT:)" + df.format(cSum) + " (fT:)" + df.format(fSum)); 

    if (cSum < fSum) { 
     System.out.print(" City is faster"); 
    } 
    else { 
     System.out.print(" Freeway is faster"); 
    } 
} 

回答

7

您正在重複使用內部和外部循環中相同的i變量。使用單獨的變量。

for (int i = 0; i < iteNum.length; i++) { 
    for (int j = 0; j < cMiles.length; j++) { 
     ... 
    } 
} 
0

至於說@約翰你正在使用相同的迭代變量i,用一個又一個

而且也是這個代碼可以簡化

if (cSum < fSum) { 
    System.out.print(" City is faster"); 
} 
else { 
    System.out.print(" Freeway is faster"); 
} 

System.out.print((cSum < fSum) ? " City is faster" : " Freeway is faster"); 
的instread

在我看來,三元運算符更清晰。

+0

不幸的是這樣做更有意義,但我們的老師希望我們對這部分使用if else語句。 –