【问题标题】:My for loop is only going through once我的 for 循环只经过一次
【发布时间】:2023-03-24 21:21:01
【问题描述】:

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

【问题讨论】:

    标签: java if-statement for-loop


    【解决方案1】:

    您在内部和外部循环中重复使用相同的 i 变量。使用单独的变量。

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

    【讨论】:

      【解决方案2】:

      正如@John 所说,您正在使用相同的迭代器变量 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");
      

      我认为三元运算符更清楚。

      【讨论】:

      • 不幸的是,这更有意义,但我们的老师希望我们在这部分使用 if else 语句。
      猜你喜欢
      • 1970-01-01
      • 2015-06-09
      • 2020-08-06
      • 2019-04-06
      • 2016-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多