C#:为什么 x 的最终值与 for 循环外的值不同
本文关键字:循环 for 为什么 | 更新日期: 2023-09-27 18:25:50
static void Main(string[] args)
{
double x;
for (x = 0; x < 5; x++)
{
Console.WriteLine(x);
}
Console.WriteLine(x);
}
我的代码打印出这个作为 for 循环的结果:0123四
和
Console.WriteLine(x);
在循环外部打印值 5。为什么它在循环外将 x 递增 1?
这是因为for
仍在第 5 次执行。
但它没有进入它,因为x<5
正在被评估为false
.
这就是为什么在大多数情况下,在for
循环中定义的变量不会在它之后使用。
在最后一个循环中,x 等于 5,因为它被冰封但没有通过检查x<5
。这就是为什么它最终打印 5 的原因。
我在MSDN上发现了一个类似的例子。我根据你的例子调整了解释。
- 首先,建立变量 i 的初始值。无论循环重复多少次,此步骤仅发生一次。你 可以将此初始化视为发生在循环之外 过程。
为了评估条件
i < 5
,将i
的值与5
进行比较。
如果
i
小于5
,则条件计算结果为 true,并且 发生以下操作: 正文中的Console.WriteLine
语句 的循环显示i
的值。i 的值递增 由1
.循环返回到步骤 2 的开头以评估 再次出现条件。如果 i 大于或等于
5
,则条件 计算结果为 false,然后退出循环。
循环
每次迭代递增 x,并且仅在未<5 时才中断。因此,要脱离循环,它在逻辑上必须是 5。
该值已经增加到 5 内存最后保持。并且在循环之外没有进行任何进一步的检查