c++ - 为什么 for 循环的条件是可选的,而 while 循环的条件不是可选的?

标签 c++ c loops for-loop while-loop

为什么是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/

相关文章:

c++ - 从 boost::array 更改为 std::array 时出现错误

c++ - 判断编译时是否支持thread_local关键字

c++ - 正在创建重复的 USB 虚拟串行端口 - 这可能是什么原因造成的?

c - 链表 : Should the type of pointer "next" and the name of struct be same?

c - 程序输出问题

c++ - 子进程和父进程之间的交互式双向通信(使用管道)

c - C 中的 Exc_Bad_Access

C 停在 Enter 键处

c++ - 我在迭代 map 并更改其中的值时遇到问题

linux - BASH - 基于变量创建和填充目录