Sim*_*mon 0 c# for-loop while-loop
为什么在使用for和while循环时会得到不同的结果?
for (int i = 1; i < 100; i*= 2)
{
Console.Write(i);
}
//1248163264
Run Code Online (Sandbox Code Playgroud)
.
int i = 1;
while (i < 100)
{
i *= 2;
Console.Write(i);
}
//248163264128
Run Code Online (Sandbox Code Playgroud)
因为while语句执行您的Console.Write(128)第一个,然后检查它是否i(128在这种情况下)小于100或小于.
如果你Console.Write(i);在多次使用它之前使用它,你将得到相同的结果,因为在这种情况下它64首先写入你的值然后多次写入2并且从128 < 100返回开始false,它将不再在你的while语句中执行.
int i = 1;
while (i < 100)
{
Console.Write(i);
i *= 2;
} // 1248163264
Run Code Online (Sandbox Code Playgroud)
while语句执行如下:
- 评估boolean-expression(第7.16节).
- 如果布尔表达式为true,则控制权转移到嵌入语句.当控制到达嵌入语句的结束点时(可能来自执行continue语句),控制权转移到while语句的开头.
- 如果布尔表达式产生false,则控制转移到while语句的结束点.
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |