我试图在stackoverflow中搜索这个问题,但没有找到它。如果在其他地方发布,请随意删除此帖子(请链接我...)。
我刚开始使用C编程并了解
while(true)
{
}
形成一个无限循环。
据我了解,这意味着该函数以" true"的条件执行。但是,这是什么意思?条件是否始终设置为" true"首先是什么?
请有人解释一下!
答案 0 :(得分:3)
假设:
while (a)
{
// b
}
如果a
为真,则执行块b
。这将一直重复,直到a
不成立。
如果将a
替换为常量值true
,则a
将永远不会为假,因此循环永远不会退出。
答案 1 :(得分:3)
只要指定的条件为真,while循环就会循环遍历代码块。
while (condition) {
code block to be executed
}
此处 true 总是评估为 true (true == true)所以它将是一个无限循环
while(true) { } // always evaluates to true
与
相同while(true == true) { }
同样适用于 1 和其他non falsy
值
答案 2 :(得分:2)
因为'true'总是如此。
答案 3 :(得分:0)
那么,你如何建议这种情况变得虚假?
将该行视为:
的同义词while(true == true) { }
答案 4 :(得分:0)
while循环采用这种格式
While(Condition){
code to execute
}
other code
while循环计算条件中的表达式。
当While循环中的条件计算为true时,它运行"代码来执行"直到关闭括号,然后再次检查条件。当条件为真时,它会再次循环。
如果它是假的"其他代码"将被执行所以当条件永远不会改变时它也将永远保持为无限循环
在C中你也可以写一个而不是真所以这个循环,
While(1){}
也是一个无限循环
答案 5 :(得分:0)
只要给定条件为真,C编程语言中的while循环语句就会重复执行目标语句。
现在这意味着只要条件为真,循环就会继续。
但是,你会问“条件何时成立?”
要解释一下,举一个简单的例子
int a = 5 , b = 2 ;
while ( a > b )
{
printf ( " %d " , a );
}
所有Relational Operators(如<
>
==
!=
等)如果符合条件,则返回true,这就是它的工作方式。< / p>
因此,如果a > b
大于a
,则条件b
将返回true(或1)。 (请注意,这是一个无限循环,因为b
的值始终小于a
)
只要条件不为零,while循环就会继续。
这意味着类似
while ( 2 )
{
}
也是一个无限循环(因为2非零,因此是真的)。
但如果是
while ( 0 )
{
}
0等于false,因此,不执行循环。
但是,这段代码
int a = 5 , b = 2 ;
while ( a > b )
{
printf ( " %d " , a );
b++;
}
不是无限循环,因为在执行循环几次后,b
将变为6,大于a
,因此条件( a > b )
将返回false,循环将停止。