gpt4 book ai didi

c# - 在 while 循环的条件之后放置一个分号会发生什么?

转载 作者:可可西里 更新时间:2023-11-01 08:55:21 24 4
gpt4 key购买 nike

我遇到过几次这样的情况:

while (true) {

while (age == 5); //What does this semi-colon indicate?
//Code
//Code
//Code

}

while(true) 表明这是一个无限循环,但我很难理解 while 条件后的分号完成了什么,不是吗?相当于这个?:

while (age == 5) { }

//Code
//Code

换句话说,这是否意味着 while 循环没有用,因为它永远不会进入 block ?

最佳答案

while (age == 5);     // empty statement

相当于

while (age == 5) { }  // empty block

更新:即使没有要执行的主体,也不意味着循环终止。相反,它将简单地重复循环条件(可能有或依赖于副作用)直到它被满足。这是带有 goto 的等价形式:

loop:
if (age == 5)
goto loop;

此结构有时用作busy-loop等待在线程代码中更改标志。 (确切的使用和有效性因语言、算法和执行环境而异。)

我发现 ; 用于 “空 block ” 空语句是一个有问题的结构来使用,因为这样的问题:

while (age == 5); {
Console.WriteLine("I hate debugging");
}

(我以前在添加新代码时多次看到这个错误。)

快乐编码。

关于c# - 在 while 循环的条件之后放置一个分号会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8706139/

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