循环结构中break、continue、return和exit的区别
1. break
break语句的使用场合主要是switch语句和循环结构。在循环结构中使用break语句,如果执行了break语句,那么就退出循环,接着执行循环结构下面的第一条语句。如果在多重嵌套循环中使用break语句,当执行break语句的时候,退出的是它所在的循环结构,对外层循环没有任何影响。如果循环结构里有switch语句,并且在switch语句中使用了break语句,当执行switch语句中的break语句时,仅退出switch语句,不会退出外面的循环结构。通过图3-17,读者可以很直观地了解break语句的使用。
(点击查看大图)图3-17 break语句 |
2. continue
continue语句是这5种结束循环的方式中最特殊的,因为它并没有真的退出循环,而是只结束本次循环体的执行,所以在使用continue的时候要注意这一点。图3-18为各种循环结构中continue语句的使用。
在for循环中,首先执行表达式1(注意表达式1在整个循环中仅执行一次),接着执行表达式2,如果满足条件,那么执行循环体,如果在循环体中执行了continue语句,那么就跳转到表达式3处执行,接下进行下一次循环,执行表达式2,看是否满足条件;在while循环中,如果执行了continue语句,那么就直接跳转到表达式处,开始下一次的循环判断;在do while循环体中如果执行了continue语句,那么就跳转到表达式处进行下一次的循环判断,这一点前面已经验证过了。
3. return语句
如果在程序中遇到return语句,那么代码就退出该函数的执行,返回到函数的调用处,如果是main()函数,那么结束整个程序的运行。图3-20为return语句的使用。
(点击查看大图)图3-20 return语句 |
如果是在自定义的函数中执行,那么执行return之后就返回到函数的调用处继续往下执行。
4. exit()函数
exit()函数与return语句的最大区别在于,调用exit()函数将会结束当前进程,同时删除子进程所占用的内存空间,把返回信息传给父进程。当exit()中的参数为0时,表示正常退出,其他返回值表示非正常退出,执行exit()函数意味着进程结束;而return仅表示调用堆栈的返回,其作用是返回函数值,并且退出当前执行的函数体,返回到函数的调用处,在main()函数中, return n和exit(n)是等价的。图3-21为exit()函数的使用。
接下来通过两段代码对return语句和exit()函数进行简单的对比,先来看return语句的使用。
- #include <stdio.h>
- #include <stdlib.h>
- int print()
- {
- int n;
- n = 0;
- printf("使用return来结束循环\n");
- while(1)
- {
- if(9==n)
- return n;
- n++;
- }
- return 0;
- }
- void main(void)
- {
- int ret;
- printf("调用print()函数之前\n");
- ret = print();
- printf("print()函数的返回值ret=%d\n",ret);
- printf("调用print()函数之后\n");
- return ;
- }
运行结果:
- 调用print()函数之前
- 使用return来结束循环
- print()函数的返回值ret=9
- 调用print()函数之后
(点击查看大图)图3-21 exit( )函数 |
在上面的代码中,用return语句来退出while死循环,在main()函数中print()函数的调用处将返回值赋给ret,打印输出后可以看到使用return语句成功地返回了9。
下面来看exit()函数的使用。
- #include <stdio.h>
- #include <stdlib.h>
- void print()
- {
- int n;
- n = 0;
- printf("使用exit来结束循环\n");
- while(1)
- {
- if(9==n)
- exit(1);
- n++;
- }
- return ;
- }
- void main(void)
- {
- int ret;
- printf("调用print()函数之前\n");
- print();
- printf("调用print()函数之后\n");
- return ;
- }
运行结果:
- 调用print()函数之前
- 使用exit来结束循环
从以上代码可以看出,如果执行exit()函数后能够返回到main()函数的调用处,那么可以打印出接下来的信息“调用print()函数之后”,但是运行结果表明在调用exit()函数之后没有任何输出,所以执行exit()函数之后将直接结束整个程序的运行。
循环结构中break、continue、return和exit的区别相关推荐
- Break Continue Return( BCR ) 三者的区别
Break是完全结束一个循环,当该循环中出现break,则该循环终止,然后执行该循环之后的代码. package com.etime;public class BCR {public static v ...
- C#中break,continue,return,,goto,throw的区别(转)
break 语句用于终止最近的封闭循环或它所在的switch 语句. 控制传递给终止语句后面的语句(如果有的话). /// <summary>/// break 示例/// 在此例中,条件 ...
- Java中 break continue return 的用法以及区别
1.return (1)return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行. (2)return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致 ...
- 详解C#break ,continue, return
C#编程语法中我们会碰到break ,continue, return这三个常用的关键字,那么关于这三个关键字的使用具体的操作是什么呢?我们在使用这三关键字的时候需要注意和需要理解的规则是什么呢?让我 ...
- JavaScript 中,break , continue , return 的区别
break , continue , return 的区别 break :结束当前的循环体(如 for.while) continue :跳出本次循环,继续执行下次循环(如 for.while) re ...
- PHP中跳出循环break,continue,return,exit的区别
1. return 语句的作用 (1) return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行. (2) return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中 ...
- 重学JavaSE 第4章 : 顺序结构、分支语句、循环结构、break, continue, return区别
文章目录 一. 程序流程控概述 二. 顺序结构 三.分支语句 2.1.分支语句1:if-else结构 2.1.1.输入语句 2.2. 分支语句2:switch-case结构 四.循环结构 4.1.fo ...
- java 理解break,continue,return
这是第一次写博客,今天在工作中遇到有关break,return,continue.记录一下我的理解. break: break常用于for循环中判断语句中和switch语句,break只能跳出一层fo ...
- js 中的break continue return
break:跳出整个循环 1.当i=6时,就跳出了整个循环,此for循环就不继续了: continue:跳出当前循环,继续下一次循环: return :指定函数返回值 1.在js当中,常使用retur ...
- for in遍历对象时break,continue,return尝试
三个都会将此时进行的语句停止. 不同之处: 1.break:是立即结束语句,并跳出语句,进行下个语句执行. 2.continue:是停止当前语句,并从头执行该语句. 3.return:停止函数. 4. ...
最新文章
- 实现在Windows下安装Lighttpd的方法
- Vue.js not detected
- 如何零基础入门FPGA?这篇文章让你吃透!
- 电脑显示器变色_电脑维修(看完后就可以开一家自己的电脑维修店!)
- Samba服务器问题汇总
- 7招,实现安全高效的流水线管理
- Java程序员的日常—— 垃圾回收中引用类型的作用
- Redability
- Graphviz 绘制流程图
- 刷题记录 kuangbin带你飞专题四:最短路练习
- FPGA课设实验二:计数器设计与仿真
- python分析txt文件_python解析文本文件
- io.seata.common.exception.ShouldNeverHappenException: Could not found any index in the table
- unity怎么导入系统的树_Unity5.0_树_软件教程_资源库
- 六脚自锁开关 引脚定义
- 全球与中国兽医计算机断层扫描 (CT) 扫描仪市场深度研究分析报告
- MySQL编码格式统一为UTF8
- 微信小程序--字体水平垂直居中
- 好用的任务管理工具有哪些?可以管理日常任务的便签
- 西南大学计算机考研,西南大学907考研,西南大学808考研