最近,我们发现了一种通过使用Continue注释掉代码行的“好方法”:
for(int i=0; i<MAX_NUM; i++){
....
.... //--> about 30 lines of code
continue;
....//--> there is about 30 lines of code after continue
....
}
我通过问为什么以前的开发人员为什么将continue关键字放入密集循环中来抓挠我的头。最有可能的是,他/她觉得放置“continue”关键字比删除所有不需要的代码更容易...
通过查看以下情况,它引发了另一个问题:
方案A:
for(int i=0; i<MAX_NUM; i++){
....
if(bFlag)
continue;
....//--> there is about 100 lines of code after continue
....
}
方案B:
for(int i=0; i<MAX_NUM; i++){
....
if(!bFlag){
....//--> there is about 100 lines of code after continue
....
}
}
您认为哪个最好?为什么?
Break关键字怎么样?
最佳答案
在这种情况下,使用continue
可以大大减少嵌套,并且通常使代码更具可读性。
例如:
for(...) {
if( condition1 ) {
Object* pointer = getObject();
if( pointer != 0 ) {
ObjectProperty* property = pointer->GetProperty();
if( property != 0 ) {
///blahblahblah...
}
}
}
变得公正
for(...) {
if( !condition1 ) {
continue;
}
Object* pointer = getObject();
if( pointer == 0 ) {
continue;
}
ObjectProperty* property = pointer->GetProperty();
if( property == 0 ) {
continue;
}
///blahblahblah...
}
您会看到-代码变得线性而不是嵌套。
您可能还会发现this closely related question的答案很有帮助。
关于c++ - 在C++中使用continue关键字的另一种方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3819572/