牛骨文教育服务平台(让学习变的简单)
博文笔记

c语言如何跳出多层循环

创建时间:2016-03-28 投稿人: 浏览次数:5209

c语言如何跳出多层循环

我们知道c语言的break语句只能跳出离它最近的一层循环,可是有时候我们需要跳出多层循环 那可怎么办呢? 比如一个二重循环  在最内层如果某条件成立 我们就可以完成需要的动作  然后退出全部循环,该怎么做呢? 下面雅乐网提供了几种跳出多重循

我们知道c语言的break语句只能跳出离它最近的一层循环,可是有时候我们需要跳出多层循环 那可怎么办呢?

比如一个二重循环  在最内层如果某条件成立 我们就可以完成需要的动作  然后退出全部循环,该怎么做呢?

c语言如何跳出多层循环

下面雅乐网提供了几种跳出多重循环的方法 并不局限于上面的二重循环 例子只是为了提供思路

1. 使用goto

虽然大多数教材和人都建议少使用goto语句,但是goto还是有它存在的道理,比如可以快速跳出多重循环。雅乐网认为在这种情况下goto是最佳的选择。

1 2 3 4 5 6 7 8 9 10 11 12 for(i= 0;i <MAX1;i++) { for(j= 0;j <MAX2;j++) { if(condition1) { symbol= 1; gotohere; } } } here:

评分:★★★★★

2. 写成函数 return

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 voidnestedfor(void) { for(condition1) { for(condition2) { for(condition3) { if(condition) { symbol= 1; return; } } } } }

评分:★★★★

缺点:循环嵌套很多的时候很麻烦,函数参数传递也很麻烦

3. 直接修改外层循环条件

1 2 3 4 5 6 7 8 9 10 11 12 for(i= 0;i <MAX1;i++) { for(j= 0;j <MAX2;j++) { if(condition1) { symbol= 1; i= MAX; break; } } }

评分:★★★★

缺点:修改了循环控制变量

4. 在外层循环设置判断条件

内层循环判断满足条件修改标志后 外层循环进行判断

1 2 3 4 5 6 7 8 9 10 11 12 13 for(symbol!= 1&& condition1) { for(symbol!= 1&& condition2) { for(symbol!= 1&& condition3) { if(condition) { symbol= 1; } } } }

评分:★★★

缺点:书写较为麻烦  未满足条件的时候有多余的判断

5. 在大循环后面判断标志加入break

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 for(condition1) { for(condition2) { for(condition3) { if(condition) { symbol= 1; } } if(symbol== 1) break; } if(symbol== 1) break; }

评分:★★★

缺点:同2

声明: 本文由(yalewoo)原创,转载请保留本文链接:http://www.yalewoo.com/how_to_skip_nested_loop.html

  • 你有undefined条新回复
  • 你有undefined条系统消息
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。