我很想知道为什么这是允许的.
int i=0;;
Run Code Online (Sandbox Code Playgroud)
我偶然输入了那个.但该计划编制.经过很多天我打字后才注意到它;;
之后我尝试了不同的符号 ~, !, : etc etc
为什么不允许第一个允许的地方.
只是好奇才知道.
Mic*_*tta 16
您输入了一个空语句:
int i=0; // that's one statement
; // that's another
Run Code Online (Sandbox Code Playgroud)
在C#中声明没有正文是合法的.
从C#语言规范的第8.3节开始:
空语句什么都不做.
空声明:
;
如果在需要语句的上下文中没有要执行的操作,则使用空语句.
空语句实际上可能很有用.看看这个有趣的无限循环示例:
for (;;)
{
// loops infinitely
}
Run Code Online (Sandbox Code Playgroud)
运行以下版本作为证明,但是从无穷远处打破:
int count = 0;
for (;;)
{
count++;
if (count > 10) break;
}
Console.WriteLine("Done");
Run Code Online (Sandbox Code Playgroud)
但是,如果你真的想要进行无限循环,请使用:while (true) {}
而不是for (;;) {}
.while(true)不那么简洁,更容易阅读,并且可以无限期地传达循环的意图.