为什么 C++(和大多数其他语言)同时具有“for”和“while”循环?/你可以用一种类型做什么而不能用另一种类型做什么?

You*_*mil -1 c++ loops for-loop while-loop

为什么大多数编程语言都有两种或多种几乎没有区别的循环类型?在 C++ 中,两者之一更适合特定任务吗?switches和怎么样if?有什么区别吗?

如果没有,那么我们将不胜感激地回答为什么实施它们。

Ben*_*igt 5

对于一种类型可以做的事情,对于另一种类型则不能做,因为它们之间存在机械变换

while (X) { body; }
Run Code Online (Sandbox Code Playgroud)

可以写成

for (;X;) { body; }
Run Code Online (Sandbox Code Playgroud)

for (A;B;C) { body; }
Run Code Online (Sandbox Code Playgroud)

可以写成

{ A; while (B) { body; C; } }
Run Code Online (Sandbox Code Playgroud)

唯一的区别是可读性。for 循环将更新表达式C放在循环的顶部,从而更容易识别某些模式,例如循环遍历数字范围:

for( i = 0; i < limit; ++i )
Run Code Online (Sandbox Code Playgroud)

或遵循链接列表

for( ; ptr != nullptr; ptr = ptr->next )
Run Code Online (Sandbox Code Playgroud)