为什么 while(true) 是一个无限循环?

Bry*_*hih 0 c infinite-loop while-loop

我试图在 stackoverflow 中搜索这个问题,但没有找到。如果这是张贴在其他地方,请随意删除此帖子(也请链接我...)。

我刚开始用 C 编程并了解到

while(true)
{
}
Run Code Online (Sandbox Code Playgroud)

形成无限循环。

据我了解,这意味着该函数在“真”的条件下执行。但是,这是什么意思?条件是否总是首先设置为“真”?

哪位大侠解释一下!

Dan*_*ker 5

鉴于:

while (a)
{
    // b
}
Run Code Online (Sandbox Code Playgroud)

如果a为真,则块b将执行。这将不断重复,直到a不是真的。

如果a用常量 value 替换true,则a永远不会为 false,因此循环永远不会退出。


A.B*_*A.B 5

只要指定条件为真,while 循环就会循环执行代码块。

while (condition) {
    code block to be executed
}
Run Code Online (Sandbox Code Playgroud)

这里true 的计算结果总是true (true == true) 所以这将是一个无限循环

while(true) { } // always evaluates to true
Run Code Online (Sandbox Code Playgroud)

与...一样

while(true == true) { }
Run Code Online (Sandbox Code Playgroud)

1 和其他non falsy值也是如此