<分区>
每当我需要从 for(unsigned int i=0;i<bound;++i)
中逃脱时C++ 中的表达式,我只是设置索引变量 i=bound
,与此 answer 中描述的方式相同.我倾向于避免 break
声明,因为老实说,我不太了解它实际上的作用。
比较两条指令:
for(unsigned int i=0;i<bound;++i) {
if (I need a break) {
break;
}
}
和
for(unsigned int i=0;i<bound;++i) {
if (I need a break) {
i=bound;
}
}
我推测第二种方法会做一个额外的变量集,然后在 i
之间进行一次额外的比较。和 bound
,所以从性能的角度来看,它看起来更昂贵。那么问题是调用break
是否更便宜? ,然后做这两个测试?编译后的二进制文件有什么不同吗?是否存在第二种方法失效的情况,或者我可以安全地选择这两种方法中的任何一种?
相关:Does `break` work only for `for`, `while`, `do-while`, `switch' and for `if` statements?