【问题标题】:Incrementing within nested loop在嵌套循环内递增
【发布时间】:2017-03-26 02:11:51
【问题描述】:

我有一个非常直截了当的问题。在下面的程序中,为什么在 for 循环的第一次迭代中 i 不递增到 1?我的编译器显示,对于第一次运行,j 不小于 i,因为它们都是 0。谢谢!

  int i;
  for (i = 0; i < 5; i++) {
    int j = 0;
    while (j < i) {
      System.out.print(j + " ");
      j++;

【问题讨论】:

  • 为什么i 在第一次迭代中会增加? i 唯一一次递增是在第一次迭代结束时。
  • 在循环的第一次迭代中,i=0 在 for 循环的初始条件中指定。
  • 如果要从1开始,将i初始化为1,否则只有第一个循环结束后才会递增!

标签: java for-loop while-loop increment nested-loops


【解决方案1】:

i 的值在第一次迭代时为 0,在第二次迭代时为 1。采取以下措施:

for (int i = 0; i < 5; i++) {
    // loop code
}

上面的for循环只是语法糖:

{ 
    int i = 0;
    while (i < 5) {
        // loop code
        i++;
    }
}

请注意,外部大括号表示在 for 循环退出后变量 i 不再在范围内。

【讨论】:

  • @flakes 好点。在整个表达式周围添加大括号以显示范围。
【解决方案2】:
while (j <= i) 

输出:0 0 1 0 1 2 0 1 2 3 0 1 2 3 4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多