gpt4 book ai didi

c# - 迭代语句 : Ends the iteration statement itself, 或不可见的空语句之后的语句终止符 (;) 运算符?

转载 作者:行者123 更新时间:2023-11-30 15:56:26 25 4
gpt4 key购买 nike

期间 this answer ,我们心爱的 Jon Skeet 考虑了 do {} while () 需要语句终止符的情况,因为 while() 需要语句体,并继续举例说明:

while (true); (empty statement) or while (true) {} (block statement)

...将是有效的。


第二个例子很简单; while 循环执行复合( block )语句 ({}),它是空的。

然而,第一个示例连同 Skeet 的描述引发了一个有趣的问题:

while(true); 中的 ; (或任何其他迭代语句)是否终止 while (/语句)本身(在某种意义),还是它终止了 ) 和终止符之间的实际不可见的空语句?

最佳答案

从语法的角度来看,它终止了语句。不过,这是一种非常奇怪的思考方式。 while 循环必须有一个主体,所以如果你只写

while(true)

解析器不知道“语句”在哪里结束,因为它缺少一个标记。您可以类似地用另一个语句“终止”该语句。

while (true) i++;

; 一样有效。你真正应该考虑的方式是写作

while (true) ;

其实就是一个以空语句为主体的while循环,不用想什么“终止语句”

关于c# - 迭代语句 : Ends the iteration statement itself, 或不可见的空语句之后的语句终止符 (;) 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46820111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com