我在这里写了这段代码。它应该打印出由用户输入确定的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");
}
}
答案 0 :(得分:7)
您在内部和外部循环中重复使用相同的i
变量。使用单独的变量。
for (int i = 0; i < iteNum.length; i++) {
for (int j = 0; j < cMiles.length; j++) {
...
}
}
答案 1 :(得分:0)
正如@John所说,你使用相同的迭代器变量i
,使用另一个变量{/ p>
此代码也可以简化
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");
在我看来,三元运算符更清晰。