繁体   English   中英

嵌套for循环output不正确

[英]Nested for loop output not correct

 for(int c = 1; c <= rows; c++) {
      for(int i = 0; i < c; i++) {
          System.out.print(++number + " ");
      }
 }

让我们假设最初 rows = 5 和 number = 0。 output 是什么?

对我来说,如果行数为 5,则 output 将如下所示:1 2 3 4 5

但是我的老师有它:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

我似乎无法绕过它? 谁能解释为什么,我也尝试过不同的数字,对于 2,我只会得到数字 1,2,但我的教授得到 1,2,3

你有两个嵌套循环。

外部循环从1迭代到5

内部循环从0迭代到c - 1

c == 1时,内部循环从 0 迭代到 0,因此number增加 1 次。

c == 2时,内部循环从 0 迭代到 1,因此number增加 2 倍。

c == 3时,内部循环从 0 迭代到 2,因此number增加 3 倍。

c == 4时,内部循环从 0 迭代到 3,因此number增加 4 倍。

c == 5时,内部循环从 0 迭代到 4,因此number增加 5 倍。

总共, number增加了 1 + 2 + 3 + 4 + 5 == 15 次。

每增加一次number ,它也会被打印出来,后跟一个空格。 所以循环产生 output 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

对于带有内循环的每一行,执行System.out.print(++number + " "); 该语句总共15(1 + 2 + 3 + 4 + 5)次,每次执行和打印数值。

看看可视化here

了解此类问题的最佳方法是试运行。 我正在分享两步试运行,希望对您有所帮助:试运行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM