编辑:我忘了添加第二段代码的循环部分。
查看这两种代码样式
while(some_loop_cont_val)
{
while(pre_x is not done)
{
//do action pre_x
}
//do action x
}和
while(some_loop_cont_val)
{
if(pre_x is not done)
{
//do action pre_x
}
else
{
//do action x
}
}第一个循环做pre_x (可能是一个迭代动作),然后是x,第二个循环做pre_x的一部分,如果没有做完,继续做,直到完成,然后做x,所以都做pre_x,然后做x。
我想知道两者之间是否有任何差异,无论是在效率方面,还是在其他方面(例如:是否有一些很少出现的微妙效果,等等),或者是否有任何理由在特定情况下使用一种而不是另一种,或者这只是一个偏好问题。
发布于 2009-11-29 06:00:17
内部循环中的
break语句不允许退出外部循环。因此,您将错过一些由break/continue语句引入的有用功能。比较:while(some_loop_cont_val) { if(some_det) { break;}} //"break“将您带到此处
和
while(some_loop_cont_val){ while(some_det) { break;} //"break“将你带到这里}
发布于 2009-11-29 05:54:56
在第一个示例中,第二个while循环实际上可能会循环。
第二个示例有条件地提交两个不同的操作。
发布于 2009-11-29 05:59:47
请,请不要担心这些东西的效率!
action代码必须几乎为,您才会注意到其中的差异。
如果它几乎为零,和分析显示程序计数器在该循环中花费的时间超过其时间的10%,那么就需要担心它的效率。然后,如果您愿意,您可以展开循环或执行其他智能操作。
https://stackoverflow.com/questions/1813860
复制相似问题