Dot*_*NET 10 c# syntax loops while-loop
我偶然遇到过这样的情况:
while (true) {
while (age == 5); //What does this semi-colon indicate?
//Code
//Code
//Code
}
Run Code Online (Sandbox Code Playgroud)
这while(true)表明这是一个无限循环,但我无法理解while条件完成后的分号是什么,是不是等于这个?:
while (age == 5) { }
//Code
//Code
Run Code Online (Sandbox Code Playgroud)
换句话说,它是否意味着while循环是无用的,因为它永远不会进入块?
小智 22
while (age == 5); // empty statement
Run Code Online (Sandbox Code Playgroud)
相当于
while (age == 5) { } // empty block
Run Code Online (Sandbox Code Playgroud)
更新:即使没有要执行的主体,也不意味着循环终止.相反,它将简单地循环遍历条件(可能具有或依赖于副作用),直到满足为止.这是一个等效的形式goto:
loop:
if (age == 5)
goto loop;
Run Code Online (Sandbox Code Playgroud)
此构造有时用作等待标志的忙循环,以便在线程代码中进行更改.(确切的用法和有效性因语言,算法和执行环境而异.)
我发现使用;了一个"空块"空语句一个有问题的构造要使用,因为这样的问题:
while (age == 5); {
Console.WriteLine("I hate debugging");
}
Run Code Online (Sandbox Code Playgroud)
(之前我已经多次看到过这个bug,当时添加了新代码.)
快乐的编码.
| 归档时间: |
|
| 查看次数: |
15624 次 |
| 最近记录: |