跳出循环的三种方式
2016-03-10 14:24
1996 查看
break、continue、goto三个关键字都可以用于跳出循环,但三者跳出循环的情况却有所不同
braek:跳出本层循环,执行本层循环下面的语句。
continue:终止本次循环,进入下一次循环。
goto:调到标号所在位置,执行标号下面的语句,它比较方便的是可以一次跳出多重循环,但是它只能在函数内跳转,不能在函数间跳转。goto语句有一定的弊病,会使程序的流程变得混乱,有时会难以理解,并且程序的调试与排错也会变得复杂。
输出结果为5。
当num =5时,程序直接跳出循环,执行输出语句,故输出为5。
输出结果为11。
当num = 5时,程序先给num加2(避免以后每次进入时num还为5,会一直continue直到循环结束),终止本次循环,进入下一次循环,直到i = 10时跳出循环,执行输出语句,境分析也可得处输出为11.
输出结果为20。
当num = 20时,程序进入if语句块,执行goto语句,使程序执行位置跳转到goto语句标号所在位置的下一条语句去,即输出语句,因此程序输出为20。
braek:跳出本层循环,执行本层循环下面的语句。
continue:终止本次循环,进入下一次循环。
goto:调到标号所在位置,执行标号下面的语句,它比较方便的是可以一次跳出多重循环,但是它只能在函数内跳转,不能在函数间跳转。goto语句有一定的弊病,会使程序的流程变得混乱,有时会难以理解,并且程序的调试与排错也会变得复杂。
#include<stdio.h> int main() { int num = 0; int i = 0; for (int i = 0; i < 10; i++) { if (num == 5) { break; num += 2; } num += 1; } printf("%d\n", num); system("pause"); return 0; }
输出结果为5。
当num =5时,程序直接跳出循环,执行输出语句,故输出为5。
#include <stdio.h> int main() { int num = 0; int i = 0; for (int i = 0; i < 10; i++) { if (num == 5) { num += 2; //此处要是不加这条语句,num会一直等于5,使之后每次进入循环时都会从此处 //终止而进入下一次循环,num的值不再改变 continue; } num += 1; } printf("%d\n", num); system("pause"); return 0; }
输出结果为11。
当num = 5时,程序先给num加2(避免以后每次进入时num还为5,会一直continue直到循环结束),终止本次循环,进入下一次循环,直到i = 10时跳出循环,执行输出语句,境分析也可得处输出为11.
#include<stdio.h> int main() { int num = 0; int i = 0; for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { if (num == 20) { goto logo; } num += 1; } } logo: printf("%d\n", num); system("pause"); return 0; }
输出结果为20。
当num = 20时,程序进入if语句块,执行goto语句,使程序执行位置跳转到goto语句标号所在位置的下一条语句去,即输出语句,因此程序输出为20。
相关文章推荐
- 循环双向链表的基本操作
- 欢迎使用CSDN-markdown编辑器
- struts学习
- 时序列数据库武斗大会之什么是 TSDB ?
- iOS免费注册邓白氏码
- 基于modern ui for wpf的在线公开课平台 之一(说在前面)
- struts2的零配置
- eclipse使用mybatis generator自动生成代码报错Generation Warnings Occured Project E: does
- 本地源的搭建(Apt、Pypi、Rubygem)
- 【codevs1916】负载平衡问题 费用流
- SmartClient之Server Framework
- Apache_日志分类及作用
- Unity:Unity Trigger Action - used to wire up actions to trigger events
- 第一篇博客
- 拍照上传
- 软件工程个人作业01
- ssh 应用
- 老师喜欢的学生
- Linux ssh安全设置
- Memcached多台服务器多节点负载均衡测试