for(unsigned int i=0;i<bound;++i)
表达式中跳出时,我会简单地将索引变量 i=bound
,就像这个 答案 中描述的那样。我倾向于避免使用 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
是否更便宜,而不是执行这两个测试呢?编译后的二进制文件有什么不同吗?在任何情况下,第二种方法会中断吗?我可以安全地选择这两种替代方案中的任何一种吗?
相关:`break`语句只适用于`for`、`while`、`do-while`、`switch`和`if`语句吗?