版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、循环结构 IIn循环结构的特点是,在给定条件成立时,重复执行某程序段,直到条件不成立为止nwhile 循环用于在给定条件为真的情况下重复执行一组操作,while循环先判断后执行ndo-while循环先执行后判断,因此循环将至少执行一次n在循环中,需要修改循环变量的值以改变循环条件,否则有可能形成死循环n循环嵌套必须将内层循环完整的包含在外层循环中n熟练使用for循环n理解 break 和 continue 语句的用法n熟练使用嵌套循环for( 表达式1 ; 表达式2 ; 表达式3 ) 语句; for 循环的一般语法:counter = 0;inum = 1;cnt = 100;counter
2、= 10;inum 0counter +;inum = inum + 1;cnt-分号用于分隔 for 循环的三个表达式1、计算表达式1的值,通常为循环变量赋初值;2、计算表达式2的值,即判断循环条件是否为真,若值为真则执行循环体一次, 否则跳出循环;3、计算表达式3的值,这里通常写更新循环变量的赋值表达式,然后转回第2步重复执行;工作原理1234#include void main() int number,count,factorial=1; printf(n 请输入任意一个正整数:); scanf(%d,&number); for(count = 1; count =number; co
3、unt+)factorial=factorial*count; printf(n %d的阶乘 = %dn,number,factorial);请输入任意一个正整数:5内存内存numbercountfactorial51121206循环执行五次5的阶乘 = 120for(i = 0 , j = max ; i =max ; i+, j-) printf(“n%d + %d = %d”,i, j, i + j);nfor语句中的三个表达式都可以是逗号表达式n逗号表达式就是通过“,”运算符隔开的多个表达式组成的表达式n逗号表达式从左往右计算。逗号运算符在 C 语言运算符中的优先级最低#include
4、 void main()int i,j,max;printf(请输入一个值 n);printf(根据这个值可以输出以下加法表:);scanf(%d,&max);for(i = 0,j = max ; i =max ; i+,j-)printf(n %d + %d = %d,i,j,i + j);printf(n);循环执行max次初始化语句只执行一次请输入一个值根据这个值可以输出以下加法表:50 + 5 = 51 + 4 = 52 + 3 = 53 + 2 = 54 + 1 = 5nfor 循环中有三个表达式nfor 语句中的各个表达式都可以省略n分号分隔符不能省略for( ; ; ) ;可省
5、略不能省略int num=0;for(;num 0;a+,n-) printf(%d ,a*2); n相当于省去了为循环变量赋初值,此时应在for语句之前给循环变量赋初值for(num=1;num+) . n 即不判断循环条件,也就是认为表达式2始终为真, 这时应在循环体内设法结束循环,否则将成为死循环for(i=1;i=100;) sum=sum+1; i+; n即省去修改循环变量的值,但此时应在循环体内设法结束循环 for( ; ; ) printf(这将一直进行下去这将一直进行下去); i = getchar(); if(i = X | i = x)break; n即不为循环变量赋初值,
6、不设置循环条件(认为表达式2为真值),不修改循环变量的值,无终止地执行循环体。此时应在循环体内设法结束循环,否则会成为死循环nbreak语句可以改变程序的控制流nbreak语句用于do-while、while、for循环中时,可使程序终止循环而执行循环后面的语句 nbreak语句通常在循环中与条件语句一起使用。若条件值为真,将跳出循环,控制流转向循环后面的语句n如果已执行break语句,就不会执行循环体中位于 break 语句后的语句n在多层循环中,一个break语句只向外跳一层跳出 for 循环for( ; ; ) printf(这将一直进行下去这将一直进行下去); i = getchar(
7、); if(i = X | i = x)break; 跳出 while 循环while(1) if(x = 10)break; 跳出 do-while 循环do if (x = 10)break;while (x 15);问题描述:统计从键盘输入的若干个字符中有效字符的个数,以换行符作为输入结束。有效字符是指第一个空格符前面的字符,若输入字符中没有空格符,则有效字符为除了换行符之外的所有字符。 #includevoid main()int count=0,ch;printf(n 请输入一行字符:);while(ch=getchar()!=n)if(ch= )break;count+;print
8、f(n 共有 %d 个有效字符。n,count);内存内存chcountH0_ 请输入一行字符:Hello world 共有 5 个 有效字符1循环执行 5 次5ncontinue 语句只能用在循环里ncontinue 语句的作用是跳过循环体中剩余的语句而执行下一次循环n对于while和do-while循环,continue 语句执行之后的动作是条件判断;对于for循环,随后的动作是变量更新 while() continue; while() break; 跳出整个循环继续下一次循环问题描述:求整数1100的累加值,但要求跳过所有个位为3的数。 #includevoid main()int i
9、,sum = 0;for(i=1; i=100;i+)if( i % 10 = 3)continue;sum += i;printf(sum = %d n,sum);内存内存isumnull0131循环执行到 i = 13 78输出:sum = 45701循环执行到 i = 101 1014570问题描述:用“*”输出一个菱形图案,图案如下: * * * * * * * * * * * * * * * * * * *void main()int i,j,k; for(i=1;i=4;i+) for(j=1;j=4-i;j+) printf( ); for(k=1;k=2*i-1;k+) pri
10、ntf(*); printf(n); for(i=1;i=3;i+) for(j=1;j=i;j+) printf( ); for(k=1;k=7-2*i;k+) printf(*); printf(n); 输出:* * * * * * * * * * * * * * * * * * *控制打印的行数控制每行打印的空格数控制每行打印的*号数控制打印的行数控制每行打印的空格数控制每行打印的*号数问题描述:打印输出100至200之间的全部素数。分析:素数是指只能被1和它本身整除的数。算法比较简单,先将这个数被2除,如果能整除,且该数又不等于2,则该数不是素数。如果该数不能被2整除,再看则是否能被3
11、整除。如果被3整除,并且该数不等于3,则该数不是素数,否则再判断是否被4整除,依此类推,该数只要是能被小于本身的某个数整除时,就不是素数。 void main() int i,j,n; n=0; for(i=100;i=200;i+) j=2; while(i%j!=0) j+; if(i=j) printf(%4d,i); n+; if(n%8=0) printf(n); printf(n); 输出:从100到200之间所有的素数为: 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197
12、 199控制每行输出8个素数如果第一个能被整除的数等于该数本身,则说明该数为素数从2到i之间寻找第一个能被整除的数void main() int i,num; char answer; do printf(请输入一个数:);scanf(%d,&num);printf(n);for (i = 1; i = 10; i+) printf(=);printf(n 该数是 %d,num);printf(nn 您是否还要输入其他的数(y/n)?);fflush(stdin);answer = getchar(); while (answer != n);输出:请输入一个数: 58该数是 58您是否还要输入其他的数(y/n)? y请输入一个数: 64该数是 64您是否还要输入其他的数(y/n)? nPress any key to continuenfor 循环与 while 循环类似,属于先判断后执行nfor 语句中有三个表达式:表达式1通常用来给循环变量赋初值;表达式2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 试工协议书简略版本
- 山西跨省团队旅游协议书
- 拆迁送达协议书要求
- QQ打开弹出用户协议书
- 2025年RFB协议运维管理题库
- 商铺水电使用协议书
- 并存性管辖协议书
- 2025年新能源汽车快充系统兼容性测试考核试卷
- 2025年供应链管理行业供应链数字化升级创新模式研究报告及未来发展趋势预测
- 2025年科技行业区块链公益慈善转化科技成果转化考核试卷
- 《自身免疫性脑炎》课件
- 【MOOC】大学生心理健康-厦门大学 中国大学慕课MOOC答案
- 企业用地申请报告范文
- 快递突发事件应急预案(3篇)
- 2024年自助售货店转让合同范文
- 2023年凉山州雷波重点国有林保护局招聘工作人员笔试真题
- 大班科学课件《它到哪里去了》
- 2024-2025学年广东省茂名市信宜市北师大版二年级上册期中测试数学试卷
- 林业专业知识考试试题及答案
- 配电网工程工艺质量典型问题及解析
- 中等职业技术学校中高职衔接3+2贯通培养航空服务专业人才培养方案
评论
0/150
提交评论