break、continue、goto、return和exit在循环结构中的区别

47 篇文章 4 订阅
订阅专栏
本文详细介绍了在编程中用于循环控制的break、continue、goto、return语句以及exit()函数的工作原理和应用场景。通过实例展示了它们在不同循环结构中的行为,强调了它们在结束循环和程序流程控制方面的差异,对于理解程序执行流程有重要作用。
摘要由CSDN通过智能技术生成

1. break

break语句的使用场合主要是switch语句和循环结构。在循环结构中使用break语句,如果执行了break语句,那么就退出循环,接着执行循环结构下面的第一条语句。如果在多重嵌套循环中使用break语句,当执行break语句的时候,退出的是它所在的循环结构,对外层循环没有任何影响。如果循环结构里有switch语句,并且在switch语句中使用了break语句,当执行switch语句中的break语句时,仅退出switch语句,不会退出外面的循环结构。通过下图,读者可以很直观地了解break语句的使用。

2. continue

continue语句是这5种结束循环的方式中最特殊的,因为它并没有真的退出循环,而是只结束本次循环体的执行,所以在使用continue的时候要注意这一点。下图为各种循环结构中continue语句的使用。

在for循环中,首先执行表达式1(注意表达式1在整个循环中仅执行一次),接着执行表达式2,如果满足条件,那么执行循环体,如果在循环体中执行了continue语句,那么就跳转到表达式3处执行,接下进行下一次循环,执行表达式2,看是否满足条件;在while循环中,如果执行了continue语句,那么就直接跳转到表达式处,开始下一次的循环判断;在do while循环体中如果执行了continue语句,那么就跳转到表达式处进行下一次的循环判断,这一点前面已经验证过了。

3. goto语句

在此之前已经讲解了如何使用goto语句来退出多重循环,以及使用goto语句时的注意事项。下图中为goto语句在各种循环结构中的执行。
 

goto语句可以跳转到标号所在的任何地方继续往下执行,值得注意的是,标号必须与goto语句在同一个函数体内,不能跨越函数体。

 4、return语句

如果在程序中遇到return语句,那么代码就退出该函数的执行,返回到函数的调用处,如果是main()函数,那么结束整个程序的运行。图3-20为return语句的使用。

如果是在自定义的函数中执行,那么执行return之后就返回到函数的调用处继续往下执行。

5、 exit()函数

exit()函数与return语句的最大区别在于,调用exit()函数将会结束当前进程,同时删除子进程所占用的内存空间,把返回信息传给父进程。当exit()中的参数为0时,表示正常退出,其他返回值表示非正常退出,执行exit()函数意味着进程结束;而return仅表示调用堆栈的返回,其作用是返回函数值,并且退出当前执行的函数体,返回到函数的调用处,在main()函数中, return n和exit(n)是等价的。下图为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()函数之后*/

在上面的代码中,用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()函数之前 

使用return来结束循环 

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

浅析continuebreakgoto区别
qq_38917783的博客
07-24 2618
一些学过的编程的人应该听过或者了解过continuebreakgoto这几个循环语句,或许有人还对它们的用法不太熟悉。它们都属于循环语句,但是每一个语句都有不同的用法和作用效果。今天,我们就来简单的分析一下continuebreakgoto区别。 1、continue,译为文是“继续”。它的作用与用法和break有些类似。它的作用是当循环符合要求以后,结束本次循...
C语言基础知识!!!
02-05
C语言基础知识很全面 少有的TXT格式
C语言基础知识
weixin_30721077的博客
08-06 146
1.每个C程序有且只有一个主函数main(),且程序必须从main()函数开始执行,并在main()函数结束。2.在C语言,用e来表示科学计数法时,规定在e的前面必须有数字,后面必须为整数。3.用单引号括起来的一个字符常量只能存放一个字符;C语言没有字符串变量,只能用字符数组来存储字符串。4.外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。5...
C语言的基础知识
07-16 392
 C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。主要有以下特点:  C语言在很多方面都可以用,不仅仅是在软件开发上,各类科研都是需要用到C语言的。具体应用比如我是学硬件的,单片机以及嵌入式系统都可以用C来开发。  C 语言发展如此
c语言基础知识
热门推荐
audience_fzn的博客
08-02 2万+
一、常量变量 1.常见的一些数据类型 int 4字节,short 2字节,long 4字节(跟平台有关,可能是4,也可能是8),longlong 8字节, char 1字节,float 4字节,double 8字节 2.字符串 是由双引号引起来的一串字符,以/0作为结束标志。 ‘/0’不是字符串的内容,只是一个结束标志,所以strlen时不会求‘\0’的长度 char arr[] = ...
解析PHP跳出循环的方法以及continuebreakexit区别介绍
10-27
在实际编程,正确选择continuebreakexitreturn对于编写清晰和高效的代码至关重要。continue适用于单次循环跳过部分代码,break适用于完全结束循环exit适用于结束整个脚本的执行,而return适用于结束函数...
while循环断语句breakcontinuereturn以及goto的使用
Chroniccandy的博客
08-19 6400
原创:https://blog.csdn.net/liebecl/article/details/76167106 由于程序的复杂性需要 我们在一个程序建立许许多多的嵌套语句进行程序的搭建 这就导致了如何跳出循环成为了一个重要的环节 现在就来总结下while与breakcontinuereturn以及goto一起使用的案例 注意 1.break语句用于do-while、for、while循环语句时,可使程序终止循环 2.break语句对if-else的条件语句不起作用 3.在多层循环,一个bre
PHP程序设计-3期(KC016) 2.6.2循环控制2breakcontinue拓展知识.doc
07-13
本节将详细探讨两种常用的循环控制语句:`break`和`continue`,以及它们在实际应用的拓展知识。 首先,`break`语句在循环用于强制退出当前循环。当`break`被执行时,程序的执行会立即跳出当前的循环结构,不论...
VB.NET的条件语句和循环结构
VB.NET提供了一种面向对象的编程模型,并且具备在.NET环境下开发应用程序的能力。它是.NET Framework的一部分,可以利用.NET Framework提供的强大功能和丰富的类库进行开发。 ## 1.2 VB.NET的特点 VB.NET具有以下几...
TIA protal与SCL从入门到精通(5)——函数终止跳转处理
苦走一口田
07-06 4080
对于学过基础编程语言的同学函数处理应该很熟悉,如果当前并不很熟悉函数基本处理,阅读本教程应当也可以。 本章主要分为两节详细解释以下五个程序指令 REPEAT CONTINUE EXIT GOTO RETURN 1.REPEAT (不满足条件执行) 这个语句类似于UNTIL指令, ...
理解编程break, continue, gotoreturn
"breakcontinuegotoreturn是编程语言常用的控制流语句,它们各自有不同的功能和应用场景。" 在程序设计,控制流语句是实现程序逻辑的关键部分,它们帮助我们决定程序如何按预期运行。以下是这些语句的...
写文章

热门文章

  • int, long long, double 等数据类型的长度及范围整理 38976
  • C++ String 中的substr用法 15112
  • Linux PCB(进程控制块) 详解 10554
  • 力扣刷题顺序(数据结构和算法) 10442
  • c++优先队列(priority_queue)用法详解 9907

分类专栏

  • 学习笔记 47篇
  • 刷题笔记 40篇
  • C++ 15篇
  • 数据结构 6篇

最新评论

  • Linux PCB(进程控制块) 详解

    Asahi_a: 博主的名字有意思

  • 力扣刷题顺序(数据结构和算法)

    natus_vicere: 等会,题目495是什么鬼

  • 力扣刷题顺序(数据结构和算法)

    夜深人静学前端: 感谢你的总结!!!刷题与君共勉

  • Linux代码文件中的中文乱码

    黑化草莓熊: 抱歉,我这边是ubt的系统环境表情包

  • Linux代码文件中的中文乱码

    qq_41441842: 似乎这三个在centos7都没有用。 在centos7执行以下步骤,能解决从win导入的代码中中文乱码的问题,很灵性 1、输入命令:export LANG=zh_CN.gbk(这句有起作用) 2、在xshell菜单栏有一个小地球图标将其换为Chinese Simplified(GBK)(这句有起作用) 似乎没啥用,我不太确定: vim /etc/locale.conf 改为LANG="zh_CN"(这句好像没起作用) 在xshell右键主机属性->终端->编码改为GBK(这句好像没起作用) 另:查看文件编码:locale,第一排文字就是编码信息 另:网上说的 /etc/sysconfig/i18n这个文件夹centos7没有

最新文章

  • 人类简史,从动物到上帝
  • 小谈解决方案
  • 【笔试必会】ACM输入输出练习(C++)一套搞定
2023年2篇
2022年80篇
2021年15篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑化草莓熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家品质玻璃钢雕塑销售厂家南平玻璃钢卡通雕塑福建走廊商场美陈多少钱唐县玻璃钢人物雕塑玻璃钢公仔雕塑生产厂家玻璃钢电影动漫雕塑批发价格商场奶柜创意美陈天水玻璃钢卡通雕塑定制商场美陈方案主题荆门市玻璃钢雕塑河南常用商场美陈厂家直销组合式玻璃钢雕塑摆件采购常见玻璃钢雕塑摆件供货商山东超市商场美陈哪里买三门峡校园玻璃钢雕塑定制厂家北京特色商场美陈销售大型玻璃钢雕塑影视道具装饰长春户外玻璃钢雕塑造型成都商场美陈灯饰合肥玻璃钢孔子雕塑汕尾玻璃钢座椅雕塑设计河南玻璃钢雕塑订制价格云南欧式玻璃钢雕塑多少钱孝感玻璃钢商场美陈上海大型主题商场美陈制作人物玻璃钢雕塑加工厂陕西仿铜玻璃钢雕塑生产厂家玻璃钢大嘴猴雕塑彼得兔卡通玻璃钢雕塑玻璃钢鹿雕塑厂商定制香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化