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

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语句的使用。

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int print()
  4. {
  5. int n;
  6. n = 0;
  7. printf("使用return来结束循环\n");
  8. while(1)
  9. {
  10. if(9==n)
  11. return n;
  12. n++;
  13. }
  14. return 0;
  15. }
  16. void main(void)
  17. {
  18. int ret;
  19. printf("调用print()函数之前\n");
  20. ret = print();
  21. printf("print()函数的返回值ret=%d\n",ret);
  22. printf("调用print()函数之后\n");
  23. return ;
  24. }

运行结果:

  1. 调用print()函数之前
  2. 使用return来结束循环
  3. print()函数的返回值ret=9
  4. 调用print()函数之后
 
(点击查看大图)图3-21 exit( )函数

在上面的代码中,用return语句来退出while死循环,在main()函数中print()函数的调用处将返回值赋给ret,打印输出后可以看到使用return语句成功地返回了9。

下面来看exit()函数的使用。

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. void print()
  4. {
  5. int n;
  6. n = 0;
  7. printf("使用exit来结束循环\n");
  8. while(1)
  9. {
  10. if(9==n)
  11. exit(1);
  12. n++;
  13. }
  14. return ;
  15. }
  16. void main(void)
  17. {
  18. int ret;
  19. printf("调用print()函数之前\n");
  20. print();
  21. printf("调用print()函数之后\n");
  22. return ;
  23. }

运行结果:

  1. 调用print()函数之前
  2. 使用exit来结束循环

从以上代码可以看出,如果执行exit()函数后能够返回到main()函数的调用处,那么可以打印出接下来的信息“调用print()函数之后”,但是运行结果表明在调用exit()函数之后没有任何输出,所以执行exit()函数之后将直接结束整个程序的运行。

循环结构中break、continue、return和exit的区别相关推荐

  1. Break Continue Return( BCR ) 三者的区别

    Break是完全结束一个循环,当该循环中出现break,则该循环终止,然后执行该循环之后的代码. package com.etime;public class BCR {public static v ...

  2. C#中break,continue,return,,goto,throw的区别(转)

    break 语句用于终止最近的封闭循环或它所在的switch 语句. 控制传递给终止语句后面的语句(如果有的话). /// <summary>/// break 示例/// 在此例中,条件 ...

  3. Java中 break continue return 的用法以及区别

    1.return (1)return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行. (2)return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致 ...

  4. 详解C#break ,continue, return

    C#编程语法中我们会碰到break ,continue, return这三个常用的关键字,那么关于这三个关键字的使用具体的操作是什么呢?我们在使用这三关键字的时候需要注意和需要理解的规则是什么呢?让我 ...

  5. JavaScript 中,break , continue , return 的区别

    break , continue , return 的区别 break :结束当前的循环体(如 for.while) continue :跳出本次循环,继续执行下次循环(如 for.while) re ...

  6. PHP中跳出循环break,continue,return,exit的区别

    1. return 语句的作用 (1) return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行. (2) return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中 ...

  7. 重学JavaSE 第4章 : 顺序结构、分支语句、循环结构、break, continue, return区别

    文章目录 一. 程序流程控概述 二. 顺序结构 三.分支语句 2.1.分支语句1:if-else结构 2.1.1.输入语句 2.2. 分支语句2:switch-case结构 四.循环结构 4.1.fo ...

  8. java 理解break,continue,return

    这是第一次写博客,今天在工作中遇到有关break,return,continue.记录一下我的理解. break: break常用于for循环中判断语句中和switch语句,break只能跳出一层fo ...

  9. js 中的break continue return

    break:跳出整个循环 1.当i=6时,就跳出了整个循环,此for循环就不继续了: continue:跳出当前循环,继续下一次循环: return :指定函数返回值 1.在js当中,常使用retur ...

  10. for in遍历对象时break,continue,return尝试

    三个都会将此时进行的语句停止. 不同之处: 1.break:是立即结束语句,并跳出语句,进行下个语句执行. 2.continue:是停止当前语句,并从头执行该语句. 3.return:停止函数. 4. ...

最新文章

  1. 实现在Windows下安装Lighttpd的方法
  2. Vue.js not detected
  3. 如何零基础入门FPGA?这篇文章让你吃透!
  4. 电脑显示器变色_电脑维修(看完后就可以开一家自己的电脑维修店!)
  5. Samba服务器问题汇总
  6. 7招,实现安全高效的流水线管理
  7. Java程序员的日常—— 垃圾回收中引用类型的作用
  8. Redability
  9. Graphviz 绘制流程图
  10. 刷题记录 kuangbin带你飞专题四:最短路练习
  11. FPGA课设实验二:计数器设计与仿真
  12. python分析txt文件_python解析文本文件
  13. io.seata.common.exception.ShouldNeverHappenException: Could not found any index in the table
  14. unity怎么导入系统的树_Unity5.0_树_软件教程_资源库
  15. 六脚自锁开关 引脚定义
  16. 全球与中国兽医计算机断层扫描 (CT) 扫描仪市场深度研究分析报告
  17. MySQL编码格式统一为UTF8
  18. 微信小程序--字体水平垂直居中
  19. 好用的任务管理工具有哪些?可以管理日常任务的便签
  20. 西南大学计算机考研,西南大学907考研,西南大学808考研

热门文章

  1. 青龙羊毛——可用脚本
  2. 火狐浏览器设置默认缩放比例
  3. Springboot+微信小程序自习室管理系统毕业设计源码221535
  4. 程序员裸辞2个月找不到工作,心态爆炸了
  5. python文本错别字检测
  6. beta版和alpha版
  7. 3D帧间匹配-----剔除动态障碍物
  8. 读书百客:《白马篇》赏析一
  9. 零代码工具推荐 八爪鱼采集器
  10. QtreeWidget添加右键菜单