Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#syntax;是什么;;意思是_C# - Fatal编程技术网

C#syntax;是什么;;意思是

C#syntax;是什么;;意思是,c#,C#,我的情况是: // no syntax error if (true) Console.Write("hi!"); // no syntax error if (true) Console.Write("hi!"); ; // no syntax error if (true) Console.Write("hi!"); ; ; // no syntax error if (true) Console.Write("hi!"); ; ; ; 那么,第二个/第三个/第四个平均值?编译器是否

我的情况是:

// no syntax error
if (true) Console.Write("hi!");

// no syntax error
if (true) Console.Write("hi!"); ;

// no syntax error
if (true) Console.Write("hi!"); ; ;

// no syntax error
if (true) Console.Write("hi!"); ; ; ;

那么,第二个/第三个/第四个
平均值?编译器是否应该抛出语法错误?

表示空语句。它什么也不做

在某些情况下(例如机器人编程),指示程序持续汇集环境条件,在条件满足之前什么也不做是有用的

范例

// turn motor on so robot is going forward
TurnMotorOn();

// Do nothing (means motor is still on and robot is still going forward) until there is obstacle in front of the robot.
while(!ThereIsObstacle()) ;

// turn motor off so robot is stopped.
TurnMotorOff(); 

分号单独表示空语句。所以它不会给你任何错误。这对你的计划没有影响

医生说,

空语句由一个分号组成。它什么也不做 可用于需要声明但不需要操作的地方 需要执行


这意味着有人用分号复制了整个语句,但忘记删除多余的语句。从技术上讲,它对程序没有任何影响。@user3185569我也在考虑给出一个以用户为中心的答案,但用户只是在编写代码(可能遵循也可能不遵循有效的语法)。语法本身是预定义的;)@一个有效的C#编译器绝对不会逐行解释代码。在双分号后面想象另一个语句。我不想因为下一行的某些行为而跳过它。@grek40那么,我们是否应该发出类似这样的警告:
行中的空语句…
?@grek40感谢您的解释。删除了我的评论。但是,如果没有块
{}
,我们只能使用1条语句。正当如果正确,它里面有很多语句
也没有
{}
,尽管它没有任何意义。此外,使用多个
也没有意义
因为它只表示一个空语句。@T–nNguỹn只有第一个语句属于
if
,所以实际上,在出现以下
else
的情况下,可能会出现错误(尽管您没有问这个问题)。请参阅
if(true)控制台。编写(“hi!”);否则,请写下(“我搞砸了”)空语句
?我的意思是,编译器不会抱怨它。它不需要任何东西。@T–nNguỹn在条件语句中,空语句将替代空代码块。像
while(数组[++计数]==x)
作为一种递增
计数
的方法,直到某些条件发生变化。因此,给定一个使用场景,问题可以颠倒过来:为什么不呢?我只考虑
while(!TheReIsobstable())
相同,而(!TheReisoStable()){}
。非常感谢。
    ; it termed as the statement terminator as well as empty statement