我的for循环只进行一次

时间:2016-05-12 13:56:31

标签: java if-statement for-loop

我在这里写了这段代码。它应该打印出由用户输入确定的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");
    }
}

2 个答案:

答案 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");

在我看来,三元运算符更清晰。