C语言退出多层嵌套循环技巧

由于break语句只能影响它的最内层循环,要想立即从深层嵌套循环中退出,有哪些方法呢?

1、使用goto语句:

while(condition1) {
    while(condition2) {
        while(condition3) {
            if(some disaster)
                goto quit;
        }
    }
}
quit:;

要想在这种情况下避免使用goto语句,可以考虑以下两种方案:

2、设置状态标志:

当你希望退出所有循环时设置一个状态标志,但这个标志在每个循环中都必须进行测试:

enum{EXIT, OK}status;
...
status = OK;
while(status == OK && condition1) {
    while(status == OK && condition2) {
        while(condition3) {
            if(some disaster)
                status = EXIT;
                break;
        }
    }
}

3、使用函数返回:

把所有的循环都放在一个单独的函数里,当灾难降临在最内层的循环的时候,可以使用return语句离开这个函数

 

posted @ 2014-03-26 22:11  wuyudong  阅读(5336)  评论(2编辑  收藏  举报
Top_arrow