好像
while( condition ) {
//do stuff
}
完全等价于
for( ; condition; ) {
//do stuff
}
有什么理由使用后者而不是前者?
没有good据我所知原因。您使用不增加任何内容的 for 循环故意误导人们。
Update:
根据OP对问题的评论,我可以推测您如何在实际代码中看到这样的构造。我以前见过(并使用过)这个:
lots::of::namespaces::container::iterator iter = foo.begin();
for (; iter != foo.end(); ++iter)
{
// do stuff
}
但这就是我将事情排除在 for 循环之外的最大程度。也许您的项目曾经有一个看起来像这样的循环。如果您添加在循环中间删除容器元素的代码,您可能必须仔细控制如何iter
是递增的。这可能会导致代码如下所示:
for (; iter != foo.end(); )
{
// do stuff
if (condition)
{
iter = foo.erase(iter);
}
else
{
++iter;
}
}
但是,这并不是不花五秒钟将其更改为 while 循环的借口。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)