static void Main(string[] args)
{
double x;
for (x = 0; x < 5; x++)
{
Console.WriteLine(x);
}
Console.WriteLine(x);
}
我的代码打印出来的是for循环的结果: 0 1 2 3 4
和
Console.WriteLine(x);
在循环外部的打印值5.为什么在循环外将x递增1?
答案 0 :(得分:5)
这是因为for
仍在第5次执行。
但由于x<5
正在评估false
,因此无法输入。{
这就是为什么在大多数情况下,在for
循环中定义的变量不会在它之后使用。
答案 1 :(得分:2)
在最后一个周期中,x等于5,因为它是有效的,但没有通过检查x<5
。这就是它最终打印5的原因。
我找到了类似的example on MSDN。我根据你的例子修改了解释。
- 首先,建立变量i的初始值。无论循环重复多少次,此步骤仅发生一次。您 可以认为这种初始化是在循环之外发生的 过程
- 醇>
要评估条件
i < 5
,请将i
的值与5
进行比较。
如果
i
小于5
,则条件的计算结果为true, 发生以下操作:正文中的Console.WriteLine
语句 循环显示i
的值。 i的值递增 按1
。循环返回到步骤2的开头以评估 条件再次。如果i大于或等于
5
,则为条件 计算结果为false,然后退出循环。
答案 2 :(得分:1)
循环在每次迭代时递增x,并且仅在不是&lt;因此,要打破循环,它必须在逻辑上为5。
答案 3 :(得分:0)
最后,该值已经增加到5。并且没有在循环外进行任何进一步的检查