You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何嵌套循环输出起始为8和18?修改条件后变为2和2的原因

关于C#嵌套循环输出起始值的困惑解答

嘿,我来帮你理清这个疑惑~ 其实这不是代码逻辑出了问题,而是控制台输出的显示限制在搞鬼,咱们一步步说:

1. 原代码的实际执行逻辑

先明确你写的嵌套循环的真实行为:

  • 外层循环的i从2开始,每次递增1,直到i等于99(因为条件是i < 100)
  • 每一个i值,内层循环的j都会完整从2跑到99,所以代码执行的第一行输出绝对是 i = 2 and j = 2,之后依次是i=2,j=3、i=2,j=4……直到i=2,j=99,然后才会进入i=3的循环。

2. 为什么你看到的起始是8和18?

这是因为你的原代码会输出98×98=9604行内容,而绝大多数控制台(比如Windows的命令提示符、Visual Studio的输出窗口)默认只会保留最近的几百行输出,更早的内容会被挤出缓冲区,你在控制台里能看到的只是最后显示的那一小部分,自然不是真正的开头。

3. 改成i < 10 and j < 10后起始变成2和2的原因

当你把循环条件改小后,循环只会输出8×8=64行内容,这个数量完全在控制台的显示范围内,所有输出都能被保留,所以你能看到最开头的i=2 and j=2。

验证方法

如果想确认原代码的起始输出确实是2和2,可以加个计数判断,只输出前几行:

class Program {
 static void Main(string[] args) {
 int outputCount = 0;
 for (int i = 2; i < 100; i++) {
 for (int j = 2; j < 100; j++) {
 if (outputCount < 5) // 只打印前5行
 Console.WriteLine("i = {0} and j = {1}", i, j);
 outputCount++;
 }
 }
 }
}

运行这段代码,你就能清楚看到开头的输出内容啦。

内容的提问来源于stack exchange,提问作者Voidsower

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:47:16