




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学习好资料欢迎下载一、循环控制(一 )、 break 语句break 语句通常用在循环语句和开关语句中。当break 用于开关语句switch 中时,可使程序跳出 switch 而执行 switch 以后的语句; 如果没有 break 语句,则将成为一个死循环而无法退出。 break 在 switch 中的用法已在前面介绍开关语句时的例子中碰到,这里不再举例。当 break 语句用于 do-while 、 for、 while 循环语句中时,可使程序终止循环而执行循环后面的语句,通常 break 语句总是与 if 语句联在一起。即满足条件时便跳出循环。例如:int main(int argc,
2、 char *argv)int sn=0,i;for(i=1;i<=100;i+)if(i=51) break; /* 如果 i 等于 51,则跳出循环*/sn+=i; /*1+2+50*/printf(%dn,sn);可以看出,最终的结果是 1+2+ +50 。因为在 i 等于 51 的时候,就跳出循环了。自己写写怎样在 while 和 do-while 循环中增加 break 语句。注意 :1. break 语句对 if-else 的条件语句不起作用。2. 在多层循环中,一个 break 语句只向外跳一层。例如:int main(int argc, char *argv)int i,
3、j;printf(i jn);for(i=0;i<2;i+)for(j=0;j<3;j+)if(j=2) break;printf(%d %dn,i,j);输出结果为 :i j 0 0 0 1 1 01 1当 i=0,j=2 时,执行break 语句,跳出到外层的循环,i 变为 1。(二 )、 continue 语句学习好资料欢迎下载continue 语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。continue 语句只用在for、while 、do-while 等循环体中 , 常与 if 条件语句一起使用,用来加速循环。例如:int main(int argc, cha
4、r *argv)int sn=0,i;for(i=1;i<=100;i+)if(i=51) continue; /*如果 i 等于 51,则结束本次循环*/sn+=i; /*1+2+50+52+100*/printf(%dn,sn);从程序中可以看出, continue 语句只是当前的值没有执行,也就是说当前的值跳过去了,接着执行下次循环。int main(int argc, char *argv)int i,j;printf(i jn);for(i=0;i<2;i+)for(j=0;j<3;j+)if(j=1) continue;printf(%d %dn,i,j);输出结
5、果为 :i j 0 0 0 2 1 0 1 2(三 )、 goto 语句goto 语句是一种无条件转移语句,与BASIC 中的 goto 语句相似。 goto 语句的使用格式为:goto 标号 ;其中标号是 Turbo C 2.0 中一个有效的标识符, 这个标识符加上一个 :一起出现在函数内某处,执行 goto 语句后,程序将跳转到该标号处并执行其后的语句。标号既然是一个标识符,也就要满足标识符的命名规则。另外标号必须与goto 语句同处于一个函数中,但可以不在一个循环层中。通常goto 语句与 if 条件语句连用, 当满足某一条件时,程序跳到标号处运行。goto 语句通常不用,主要因为它将使
6、程序层次不清,且不易读,但在多层嵌套退出时,用 goto 语句则比较合理。int main(int argc, char *argv)学习好资料欢迎下载int sn=0,i;for(i=1;i<=100;i+)if(i=51) goto loop; /*如果 i 等于 51,则跳出循环 */sn+=i; /*1+2+50*/loop: ;printf(%dn,sn);可以看出,这儿的goto 语句和 break 作用很类似。这儿的 loop: ;printf(%dn,sn);也可以写成loop: printf(%dn,sn);int main(int argc, char *argv)i
7、nt sn=0,i;for(i=1;i<=100;i+)if(i=51) goto loop; /*如果 i 等于 51,则跳出本次循环*/sn+=i; /*1+2+50+52+100*/loop: ;printf(%dn,sn);可以看出这儿的loop 语句和 continue 的作用类似。但是某些情况下又必须使用goto 语句,否则会让程序大大臃肿。如:int main(int argc, char *argv)int i,j,k;printf(i j kn);for(i=0;i<2;i+)for(j=0;j<3;j+)for(k=0;k<3;k+)if(k=2)
8、goto loop;printf(%d %d %dn,i,j,k);loop: ;输出结果为 :i j k0 0 00 0 1如果不使用goto 语句,而使用break,continue 语句,应该这样学习好资料欢迎下载int main(int argc, char *argv)int i,j,k;printf(i jn);for(i=0;i<2;i+)for(j=0;j<3;j+)for(k=0;k<3;k+)if(k=2) break;printf(%d %d %dn,i,j,k);if(k=2) break;if(k=2) break;输出结果为 :i j k0 0 0
9、0 0 1所以在同时跳出多层循环时,应该使用goto 语句。记住,所有的goto 语句其实都是可以用break,continue 代替的。下面举几个例子:1.求两个整数的最大公约数。例如10 和 15 的最大公约数是5。分析:最大公约数一定小于等于最小的那个数一半,同时能被两数整除。int main(int argc, char *argv)int num1,num2,i,min;scanf(%d%d,&num1,&num2);min=num1二、循环语句(一 )、 for 循环它的一般形式为:for(< 初始化 >< 条件表过式 >< 增量 &g
10、t;)语句 ;初始化总是一个赋值语句,它用来给循环控制变量赋初值;条件表达式是一个关系表达式,它决定什么时候退出循环; 增量定义循环控制变量每循环一次后按什么方式变化。 这三个部分之间用 ;分开。例如 :for(i=1;i<=10;i+)语句 ;学习好资料欢迎下载上例中先给i 赋初值 1,判断 i 是否小于等于10,若是则执行语句,之后值增加1。再重新判断,直到条件为假,即i>10时,结束循环。注意 :(1).for 循环中语句可以为语句体,但要用 和 将参加循环的语句括起来。(2).for循环中的初始化、条件表达式和增量都是选择项,即可以缺省,但;不能缺省。省略了初始化, 表示不
11、对循环控制变量赋初值。省略了条件表达式,则不做其它处理时便成为死循环。 省略了增量, 则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。(3).for 循环可以有多层嵌套。例如:for(;)语句 ;for(i=1;i+=2)语句 ;for(j=5;)语句 ;这些 for 循环语句都是正确的。int main(int argc, char *argv)int i,j;printf(i jn);for(i=0;i<2;i+)for(j=0;j<3;j+)printf(%d %dn,i,j);输出结果为 :i j 0 0 0 1 0 2 1 0 1 1 1 2用 f
12、or 循环求 1+2+100 的和:int main(int argc, char *argv)int sn=0,i;for(i=1;i<=100;i+)sn+=i; /*1+2+100*/printf(%dn,sn);从程序可以看出,使用循环语句可以大大简化代码。(二 )、 while 循环它的一般形式为:while( 条件 )语句 ;while 循环表示当条件为真时,便执行语句。直到条件为假才结束循环。并继续执行循环程学习好资料欢迎下载序外的后续语句。例如:#include stdio.hint main(int argc, char *argv)char c;c='0
13、9; /* 初始化 c*/while(c!='n') /* 回车结束循环*/c=getche(); /* 带回显的从键盘接收字符*/上例中, while 循环是以检查c 是否为回车符开始,因其事先被初始化为空,所以条件为真,进入循环等待键盘输入字符;一旦输入回车,则c='n',条件为假,循环便告结束。与for循环一样, while 循环总是在循环的头部检验条件,这就意味着循环可能什么也不执行就退出。注意 :(1).在 while 循环体内也允许空语句。例如 :while(c=getche()!='n');这个循环直到键入回车为止。(2).可以有多
14、层循环嵌套。(3).语句可以是语句体, 此时必须用 和 括起来。用 while 循环求 1+2+100 的和:int main(int argc, char *argv)int sn=0,i=0;while(+i<=100)sn+=i; /* 求 1+2+100*/printf(%dn,sn);(三 )、 do-while 循环它的一般格式为:do语句块 ;while( 条件 );这个循环与while 循环的不同在于:它先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while 循环至少要执行一次循环语句。同样当有许多语句参加循环时,要用
15、 和 把它们括起来。用 do-while 循环求 1+2+100 的和:int main(int argc, char *argv)int sn=0,i=1;学习好资料欢迎下载dosn+=i; /* 求 1+2+100*/while(+i<=100);printf(%dn,sn);从上面三个程序看出,使用 for , while 和 do-while 求解同样的问题,基本思路都差不多,只是在第一次计算时,注意初值。一、循环语句(一 )、 for 循环它的一般形式为:for(< 初始化 >< 条件表过式 >< 增量 >)语句 ;初始化总是一个赋值语句,它
16、用来给循环控制变量赋初值;条件表达式是一个关系表达式,它决定什么时候退出循环; 增量定义循环控制变量每循环一次后按什么方式变化。 这三个部分之间用 ;分开。例如 :for(i=1;i<=10;i+)语句 ;上例中先给 i 赋初值 1,判断 i 是否小于等于 10,若是则执行语句,之后值增加 1。再重新判断,直到条件为假,即 i>10 时,结束循环。注意 :(1).for 循环中语句可以为语句体,但要用 和 将参加循环的语句括起来。(2).for循环中的初始化、条件表达式和增量都是选择项,即可以缺省,但;不能缺省。省略了初始化, 表示不对循环控制变量赋初值。省略了条件表达式,则不做其
17、它处理时便成为死循环。 省略了增量, 则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。(3).for 循环可以有多层嵌套。例如:for(;)语句 ;for(i=1;i+=2)语句 ;for(j=5;)语句 ;这些 for 循环语句都是正确的。int main(int argc, char *argv)int i,j;printf(i jn);for(i=0;i<2;i+)for(j=0;j<3;j+)printf(%d %dn,i,j);输出结果为 :i j 0 0 0 10 2学习好资料欢迎下载1 01 11 2用 for 循环求 1+2+100 的和:i
18、nt main(int argc, char *argv)int sn=0,i;for(i=1;i<=100;i+)sn+=i; /*1+2+100*/printf(%dn,sn);从程序可以看出,使用循环语句可以大大简化代码。(二 )、 while 循环它的一般形式为:while( 条件 )语句 ;while 循环表示当条件为真时,便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句。例如:#include stdio.hint main(int argc, char *argv)char c;c='0' /* 初始化 c*/while(c!='n') /* 回车结束循环*/c=getche(); /* 带回显的从键盘接收字符*/上例中, while 循环是以检查c 是否为回车符开始,因其事先被初始化为空,所以条件为真,进入循环等待键盘输入字符;一旦输入回车,则c='n',条件为假,循环便告结束。与for循环一样, while 循环总是在循环的头部检
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 妇产护士考试试题及答案
- 真实考试流程分享初级社会工作者试题及答案
- 应对中级社会工作者考试心理障碍的方法及试题及答案
- 初级社会工作者备考试题及答案示例
- 聚焦多媒体应用设计师考试的试题及答案汇编
- 交互体验设计的基本要素与考试试点试题及答案
- 自主创作与多媒体设计师考试的关系试题及答案
- 通往成功的初级社会工作者考试试题及答案
- 二级考试复习的高效路径试题及答案
- 心理忧郁测试题目及答案
- 期末质量测试卷(试题)-2023-2024学年牛津上海版(三起)英语五年级下册
- 中药连翘课件
- 心肺康复进修个人总结
- DZ∕T 0219-2006 滑坡防治工程设计与施工技术规范(正式版)
- 重庆市万州区高笋塘街道社区工作者考试题目及答案2024
- 2020年《科学通史》期末复习完整考试题库208题(含答案)
- 2023-2024学年贵州省遵义市仁怀市年小升初总复习语文测试卷含答案
- 大学生职业生涯规划与就业指导智慧树知到期末考试答案2024年
- (完整版)保证药品信息来源合法、真实、安全的管理措施、情况说明及相关证明
- 2017-2022年近六年浙江高考英语普通高等学校招生全国统一考试(浙江卷)
- 五苓散的经典解读与应用
评论
0/150
提交评论