为什么是for(;;)
被视为无限循环 while while()
因为需要表达式而给出错误?为什么不for
循环也需要表达式吗?
最佳答案
只是……没有。
while
本来可以允许空条件(这可能会被解释为 true
),但这样就会与 if
不对称。对此来说,这就没有意义了。
最终,没有令人信服的理由允许 while
中存在空条件。序言,因为任何使用它的代码都不会是自记录的。
与 for
对称,您可能需要 for(; true; )
— 但现在这看起来很奇怪,因为声明和更新子句现在可能为空,而条件则不能。好吧,让我们将这些也强制执行。那么,我们在这些地方放置什么来禁止操作呢? for (int dummy = 0; true; (void)dummy)
?现在变得愚蠢了。
它们是不同的语言功能,没有充分的理由让它们在这方面以相同的方式工作而牺牲其他考虑。
关于c++ - 为什么 for 循环的条件是可选的,而 while 循环的条件不是可选的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54040160/