C#While(i ++ ...)何时递增?

Mat*_*att -7 c# loops while-loop post-increment

为什么在检查条件之后而不是在整个循环之后,While循环后递增(或后递减)变量?

如:

int x = 0;
while (x++ < 5)
Console.WriteLine(x);
Run Code Online (Sandbox Code Playgroud)

输出是:1 2 3 4 5,当我认为它应该是0 1 2 3 4.它似乎它立即检查条件 - 真实 - inrements.这是正常的行为,因为我最近一直在练习普通C,这完全不同.

我是否应该更加明确地使用此选项?

while (x < 5)
Console.WriteLine(x);
++x; 
Run Code Online (Sandbox Code Playgroud)

小智 7

如果您使用for循环,您的预期答案将是正确的:while没有任何特殊的内部工作方式.

for (x = 0; x < 5; x++)
Run Code Online (Sandbox Code Playgroud)

是最清晰地写这个的方法.