- 1、本文档共95页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.5.5 break语句和continue语句 1.break语句 break语句的一般形式为: break; break语句的功能:用于switch~case语句时,退出switch~case 语句,程序转至switch~case语句下面的语句;用于循环语句 时,退出循环体,程序转至循环体下面的语句。 【例4.16】判断输入的正整数是否为素数,如果是素数,输出 Yes,否则输出No。 main() { int m,i; scanf(m=%d,m); for(i=2;i=m-1;i++) if(m%i==0) break; if(i=m) printf(Yes); else printf(No); } 〖运行结果〗: m=23↙ Yes 2.continue语句 continue语句的一般形式为: continue; continue语句的功能:结束本次循环,跳过循环体中尚未执行的部分,进行下一次是否执行循环的判断。在while语句和do~while语句中,continue把程序控制转到while后面的表达式处,在for语句中continue把程序控制转到表达式3处。 说明: ① break语句只能用于循环体和switch~case语句中。continue只能用于循环体中。 ② 用于循环体时,break语句将整个循环终止,continue语句只是结束本次循环。 ③ 在循环嵌套的情况下使用break语句时,仅仅退出包含break语句的最内层的那个循环语句的循环体;在switch~case语句嵌套的情况下使用break语句,仅仅退出包含break语句的最内层的switch~case语句。 【例4.17】计算1~100之间分别能够被2、4、8整除的整数个数。 main() { int i,n2=0,n4=0,n8=0; for(i=1;i=100;i++) { if(i%2) continue;/*转至i++处*/ n2++; if(i%4) continue; /*转至i++处*/ n4++; if(i%8) continue; /*转至i++处*/ n8++; } printf(n2=%d n4=%d n8=%d\n,n2,n4,n8); } 〖运行结果〗:n2=50 n4=25 n8=12 4.5.6 goto语句 goto语句为无条件转移语句,其一般形式为: goto 语句标号; 其中,语句标号是一种标识符,在goto语句所在的函数中必须存在,并且其后必须跟一个冒号(:),冒号的后面可以为空,也可以是任何语句。 goto语句的功能:无条件地将程序控制转至语句标号处。 goto语句的用途:一是与if语句一起实现循环;二是从循环嵌套的内层循环跳到外层循环外。 说明: ① 语句标号代表程序的入口地址,使用goto语句只能实现在同一个函数内跳转,可以向前跳转,也可以向后跳转,但不能实现从一个函数跳转到其他函数。 ② 只能从循环嵌套的内循环跳转到外循环,不能从外循环跳转到内循环。 ③ goto语句使程序流程无规律,可读性差,不符合结构化原则,一般不宜采用,只有在不得已时才使用。 【例4.18】输入一组数,以0结束,求该组数据绝对值之和。 main() { int a,sum=0; loop1: /*语句标号*/ scanf(%d,a); sum+=a0?a:-a; if(a!=0) goto loop1; /*条件成立,转至语句标号loop1处*/ printf(sum=%d,sum); } 〖运行结果〗 1 2 -3 4 -5↙ sum=15 4.6编译预处理 编译预处理是C语言编译系统的一个组成部分。所谓的编译预处理就是在对C源程序编译之前做一些处理,生成扩展的C源程序。C语言允许在程序中使用三种编译预处理命令,即宏定义、文件包含和条件编译。为了与C语言中的语句相区别,编译预处理命令以“#”开头。 4.6.1 宏定义 1.不带参数的宏定义 ?不带参数宏定义的一般形式为: #define 宏名 宏体 其中,#define是宏定义命令,宏名是一个标识符,宏体是一 个字符序列。 功能:用指定的宏名(标识符)代替宏体(字符序列)。 如例2.1中的宏定义: #define PI 3.1415926 该宏定义的作用是用指定的标识符PI来代替其后面的字符序列3.1415926,这样,在后续程序中凡是用到3.1415926这个字符序列的地方,都可用PI来代替(见例2.1)。由此看出,宏定义能用一个简单的标识符代替一个冗长的字
文档评论(0)