摘 要: 在C语言程序设计课程中,break语句有两个作用:一是应用于switch语句中,可以结束多分支选择结构;二是应用于循环结构中,可以结束本层循环。通过实例分析出break语句使用的条件,break语句的功能,以及注意事项,明确了break语句的使用方法。

关键词: C语言程序设计; break语句; switch语句; 循环结构

中图分类号:TP311 文献标志码:A 文章编号:1006-8228(2013)12-48-02

Analysis on “break” in course of C language programming

Li Xinran, Zhao Shanlin

(North University of China, College of Computer and Control Engineering, Taiyuan, Shanxi 030051, China)

Abstract: In the course of C language programming, the break statement has two functions. First, it is used in the switch statement, which can end Select Case. Second, it is applied to a loop structure, which can end this layer circulation. By analyzing the examples, the application conditions and functions of the break statement are revealed as well as things to note, and its application methods are clarified.

Key words: C language programming; break statement; switch statement; loop structure

0 引言

在C语言程序设计课程中,break语句的功能非常容易理解,在switch语句中可以利用break语句结束switch结构;在循环结构中可以利用break语句结束循环。但是,很多人并不清楚在什么条件下使用break语句,本文着重分析break语句的使用条件,以及break语句的常见用法。

1 break语句在switch语句中的应用

switch语句是多分支选择语句,一般形式[1]:

switch(表达式)

{

case 常量表达式1: 语句1; [break;]

case 常量表达式2: 语句2; [break;]

case 常量表达式n: 语句n; [break;]

default : 语句n+1; [break;]

}

switch语句执行过程是[2]:

⑴ 计算switch语句表达式的值;

⑵ 依次与1-n个常量做比较,当表达式的值与常量相等时,执行case后的语句;

⑶ 当执行break语句时,结束switch语句;

⑷ 如无break,则从匹配的case语句起,一直执行到break或switch语句末尾为止;

⑸ 如无匹配的case值时,则执行default相应语句。

switch语句说明:

⑴ switch后括号内的表达式可以是任意类型,会自动转化为整型;

⑵ 每个常量表达式的值必须互不相同;

⑶ 执行完一个case后边的语句后,转到下一个case继续执行,可以用break强制程序在执行完一个case后跳出switch结构。如果所有case中的常量表达式都不符合,则执行default后面的语句;

⑷ case后的多条语句不必用{}括起来。

由此可见,对于break语句的使用,当执行完某个case常量表达式后面的语句,想要结束switch语句,此时应该在相应语句的后面执行break语句。例如:

main()

{ int x=1,y=0,a=0,b=0;

switch(x)

{ case 1:

switch(y)

{ case 0: a++; break;

case 1: b++; break;

}

case 2: a++; b++; break;

case 3: a++; b++;

}

printf(“\na=%d,b=%d”,a,b);

}

/*运行结果为:a=2,b=1。*/

分析运行结果,由于case 1:语句中是switch语句的嵌套,而且嵌套的switch语句后面没有执行break语句。如果在内嵌的switch语句后面执行break语句,则运行结果为:a=1,b=0,此时执行了break语句,就从switch结构中结束了。

2 break语句在循环结构中的应用

在循环结构中使用break语句的形式是“break;”,break语句的功能是强行结束循环,转向执行循环语句的下一条语句[3]。break执行流程如图1所示。

[表达式] [表达式] [语句][语句] [break;][yes][no]

图1 break语句执行流程图

如图1所示,当循环中执行了break语句,循环将提前结束。那么在什么样的条件下,循环结构中需要使用break语句,对此我们通过一个例题,来分析使用break语句的条件。

例题:判断某一个一位数n是否在一个不高于四位的整数m中出现。判断n是否在m中出现,需要将n与m中的每一位数进行比较,分离m中的每一位数,可以借助于算数运算符的求余和除,如果n==m%10,说明n在m中出现了,此时需要提前结束循环,这时要使用break语句。如果n!=m%10,那么就需要不断求新的m,利用m=m/10求得新的m;重复n与m%10的比较过程。通过分析得知,循环结束有两种可能,一种是n在m中出现了提前结束循环;另一种是n在m中没出现,当m的值变为0时结束的循环。由于此时不能判断是什么原因结束的循环,所以我们必须借助于标示变量来区别这两种情况。先将标示变量flag的值置为1,如果n在m中出现,则标示标量flag的值置为0。如果n没在m中出现标示变量的值不变,这样结束循环后,可以通过标示变量的值来判断n在m中是否出现。

通过上述分析得到循环中使用break语句的条件:当存在着两个独立的条件都可以使循环结束时,提前结束循环的条件就是使用break语句的条件;另外一个结束循环的条件作为控制循环的变量。此种用法通常借助标示变量来区别结束循环的原因。使用break语句时候,还需注意break语句只能结束本层循环,不能影响外层循环。

判断某一个一位数n是否在一个不高于四位的整数m中出现的算法实现如下:

main()

{ int m,n,flag=1;

scanf("%d%d",&m,&n);

while(m!=0)

{ if(n==m%10)

{ flag=0;

break;

}

m=m/10;

}

if(flag) printf("no\n");

else printf("yes\n");

}

3 结束语

本文分析了C语言程序设计课程中break语句的使用方法。在switch语句中,可以结束多分支选择结构;在循环结构中,可以结束本层循环。同时分析出在两种结构中使用break语句的条件,并举例说明break语句的用法和需注意的要点。通过本文对break语句用法的分析,能让学习C语言程序设计课程的学生更准确地掌握break语句的用法,为学好结构化程序设计语言的选择结构和循环结构程序设计打好基础。

参考文献:

[1] 谭浩强.C程序设计[M].清华大学出版社,2001.

[2] 赵山林.C语言程序设计[M].人民邮电出版社,2012.

[3] 赵山林.C语言程序设计[M].高等教育出版社,2010.

[4] 姚林.C语言程序设计[M].人民邮电出版社,2010.

[5] 王敬华,林萍.C语言程序设计[M].清华大学出版社,2009.

c语言break语句作用范围,C语言程序设计中break语句分析相关推荐

  1. c语言程序设计中常用语句,单片机C语言编程常用语句

    <单片机C语言编程常用语句>由会员分享,可在线阅读,更多相关<单片机C语言编程常用语句(22页珍藏版)>请在人人文库网上搜索. 1.C51程式设计一般陈述式摘要,1,C51 S ...

  2. [转载] python中的且语句_简单探讨python中的语句和语法

    参考链接: 在Python中解包:并行分配之外 python程序结构 python"一切皆对象",这是接触python听到最多的总结了.在python中最基层的单位应该就是对象了, ...

  3. java语言中if语句的基本语法_java中if语句有哪些形式和用法

    形式一:if语句 if语句是指如果满足某种条件,就进行某种处理.例如,小明妈妈跟小明说"如果你考试得了100分,星期日就带你去游乐场玩".这句话可以通过下面的一段伪代码来描述. 如 ...

  4. oracle中SQL语句ge的用法,Oracle中SQL语句的几种用法

    在诊断数据库系统性能的过程中,总会涉及到跟踪效率低下的SQL语句,Oracle数据库10g包含一种新的实用程序trcsess,它可以让您基于会话ID或模块名称之类的条件,有选择地从大量跟踪文件中抽取出 ...

  5. c51语言1秒延时程序,KeilC51程序设计中几种精确延时方法

    实现延时通常有两种方法: 一种是硬件延时,要用到定时器/计数器,这种方法可以提高CPU的工作效率,也能做到精确延时:另一种是软件延时,这种方法主要采用循环体进行. 1 使用定时器/计数器实现精确延时 ...

  6. python中break和continue的区别_python中break和continue的区别

    原博文 2017-08-01 09:56 − break和continue 1.break 意思为结束循环 例: i = 0 while i<10: i+=1 if i==5: #当i=5时,结 ...

  7. python中if else语句用法_讲解Python中if语句的嵌套用法

    可能有这样一种情况,当你想检查其他条件后一个条件解析为真.在这种情况下,可以使用嵌套的if结构. 在嵌套的 if 语句结构,可以在一个 if... elif... else 结构里面可有另外一个 if ...

  8. mysql的更新语句_IT大叔详谈mysql中update语句和delete语句及应用

    学习是一件枯燥的事,你要牺牲自己的业余时间,你要忍受孤独,坚持下来了你就胜利了,学习是一个过程,只要循序渐进,每天进步一点点,只有这样你才能提高进而成功.今天老韩来讲一讲mysql中的update语句 ...

  9. c语言通讯录二分查找,C语言程序设计 通讯录程序.doc

    <C语言程序设计 通讯录程序.doc>由会员分享,可在线阅读,更多相关<C语言程序设计 通讯录程序.doc(28页珍藏版)>请在人人文库网上搜索. 1.目录:课 程 设 计 任 ...

最新文章

  1. C语言基础(12)-输入和输出
  2. PHP的composer dump-autoload
  3. IntentService详解
  4. 春运首日武警广东总队护航
  5. php 打印对象到文件,php实现将数组或对象写入到文件的方法小结【三种方法】...
  6. Linux内存管理和分析vmalloc使用的地址范围
  7. 走近webpack(1)--多入口及devServer的使用
  8. 李佳琦618直播清单都在这张思维导图上了
  9. 巨人肩膀之线性表简介
  10. 根据输入的姓氏,随机获取对应的男生和女生姓名
  11. 部分古钱知识--(4)
  12. python-linux-获取多台远端机器指定文件并下载至本地(s**y-日志审计)
  13. 微信内分享链接防红办法-微信域名防封技术系统的实现方案
  14. 夜神模拟器怎么开脚本?
  15. Android 获取摄像头像素,个数
  16. 软考中级过了就是中级职称吗?
  17. foot元素内容未满或超过一页都底部显示
  18. 应用程序中的服务器错误 怎么解决办法,iwms出现“/”应用程序中的服务器错误。解决办法...
  19. SDL mac(event) 入门1 - 显示图像
  20. 中小型运维团队如何设计运维自动化平台

热门文章

  1. 驱动led --GPIO控制
  2. 一文了解三种3D视觉技术
  3. 提高代码质量之静态代码检查
  4. LTspice - 基础操作2
  5. Python 抓取微信公众号账号信息
  6. ubuntu:VIM使用
  7. win10彻底关闭休眠状态(1909以上版本)
  8. Spring IOC的工作原理
  9. 区块链在网络安全中有何作用?
  10. 如何设置无线路由器,实现WIFI上网?