[英]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.