gra*_*olf 2 c++ for-loop while-loop c++11
我应该使用for或while循环来查找链表中的最后一项吗?
Item * last = list;
for (; last->next; last = last->next) ;
Run Code Online (Sandbox Code Playgroud)
与
Item * last = list;
while (last->next)
{
last = last->next;
}
Run Code Online (Sandbox Code Playgroud)
它是2行而不是5行,看起来几乎同样可读.为什么我总是只看到while形式?
为什么我总是只看到while形式?
while表单首选有两个原因:
for循环混乱后找到分号,或者甚至完全错过分号,而不理解正在发生的事情.关于while循环没有这样的混乱.for在循环外部声明的循环变量的循环提供了一个强烈的指示,表明您实际上需要一个while循环 - 循环变量的作用域是循环体.当你在循环之外声明它们时,这是因为你想要循环结果中循环变量的结束值.