《for循环结构.ppt》由会员分享,可在线阅读,更多相关《for循环结构.ppt(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、For循环结构和循环控制break、continue学会使用for循环结构学会在程序中使用break和continue本章目标为什么使用for循环2-1回顾问题1:令狐冲说一百遍“我最棒”回顾问题2:根据人数和成绩,计算平均成绩解决解决:使用使用while循环循环共同点:确定的循环次数共同点:确定的循环次数 更优解决更优解决:for循环循环结构结构为什么使用for循环2-2 int i=0;while(i100)printf(我最棒我最棒);i+;for(int i=0;i100;i+)printf(我最棒我最棒);for比比while更简洁更简洁while循环结构循环结构for循环结构循环结
2、构for循环的语法和执行顺序循环的语法和执行顺序什么是for循环for(;);条件为条件为true 循环体被执行循环体被执行 for(int i=0;i 100;i+)printf(我最棒我最棒);代码规范:代码规范:格式对齐、代码的缩进格式对齐、代码的缩进 表达式表达式1 表达式表达式2 表达式表达式3 循环操作循环操作 参数初始化参数初始化条件判断条件判断更新循环变量更新循环变量1243如何使用for循环1、循环录入某学员S1的5门课成绩,计算平均分循环次数循环次数:5循环条件循环条件:循环的次数不足:循环的次数不足5,继续循环,继续循环循环操作循环操作:录入成绩,计算:录入成绩,计算成绩
3、之和成绩之和使用for循环结构的步骤1、分析循环条件和循环操作2、套用for语法写出代码3、检查循环是否能够退出结合问题结合问题1如何使用for循环3-2 /省略声明变量省略声明变量 for(int i=0;i 5;i+)/循环循环5次录入次录入5门课成绩门课成绩 printf(请输入请输入5门功课中第门功课中第%d门课的成绩:门课的成绩:“,i);scanf(“%f”,&score);sum=sum+score;avg=sum/5;/计算平均分计算平均分 printf(平均分是:平均分是:%f,avg);初始值:初始值:i=0循环条件:循环条件:i5循环变量改变:循环变量改变:i+循环操作执
4、行循环操作执行5次次演示示例演示示例1:使用:使用for循环结构循环结构完整代码完整代码如何使用for循环3-3 2、输出如图所示加法表for(int i=0,j=val;i=val;i+,j-)printf(“%d+%d=%d,i,j,(i+j);1、循环初始化:、循环初始化:i=0;j=输入值输入值2、循环条件:、循环条件:i=输入值输入值3、循环操作:计算、循环操作:计算i+j4、循环变量的改变:、循环变量的改变:i+,j-完整代码完整代码表达式表达式3可以是用可以是用“,”隔开的多隔开的多个表达式,运算顺序从左到右个表达式,运算顺序从左到右表达式表达式1中可以声明多个同一中可以声明多个
5、同一类型的值并赋值,用类型的值并赋值,用“,”隔开隔开演示示例演示示例2:使用:使用for循环结构循环结构for循环常见问题4-1for(;i10;i+)printf(这是这是+i);int i=0;编译错误:编译错误:变量变量 i 没有初始化没有初始化for(;);不能省略不能省略 可省略可省略表达式表达式1省略,循环变量省略,循环变量的初始值在的初始值在for语句之前语句之前由赋值语句取得由赋值语句取得for循环常见问题4-2for(int i=0;i+)printf(这是这是+i);编译正确,但是缺少编译正确,但是缺少循环条件,造成死循环循环条件,造成死循环for循环常见问题4-4for
6、(;)printf(这是测试这是测试);表达式全省略,无条件判断,循环变量无改变,表达式全省略,无条件判断,循环变量无改变,应在循环体内设法结束循环,否则会造成死循环应在循环体内设法结束循环,否则会造成死循环死循环死循环小结1 求1100之间不能被3整除的数之和(使用for循环结构)参考代码参考代码为什么需要break语句int i=2;switch(i)case 1:System.out.println(星期一星期一);break;case 2:System.out.println(星期二星期二);break;/其他语句其他语句遇到遇到break,立即跳出,立即跳出switch语句语句回顾b
7、reak用于switch语句描述4000米长跑比赛for(int i=0;i10;i+)跑跑400米;米;if(不能坚持)(不能坚持)break;/退出比赛退出比赛 第第8圈,圈,快累死了快累死了我要退出我要退出什么是break语句break:改变程序控制流用于do-while、while、for中时,可跳出循环而执行循环后面的语句while()break;跳跳出出整整个个循循环环break通常在循环中与通常在循环中与条件语句一起使用条件语句一起使用如何使用break语句2-1 3、循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误循环录入成绩,判断录入正确性:
8、循环录入成绩,判断录入正确性:录入错误,使用录入错误,使用break语句立刻跳语句立刻跳出循环;否则,累加求和出循环;否则,累加求和演示示例演示示例3:使用:使用break语句语句如何使用break语句2-2for(int i=0;i 5;i+)/循环循环5次录入次录入5门课成绩门课成绩 sprintf(请输入成绩:请输入成绩:);scanf(“%d”,&score);/从控制台接收数据从控制台接收数据 if(score 0)wrong=false;/出错标识出错标识 break;/退出循环退出循环 sum=sum+score;循环外的语句循环外的语句对录入的分数进行判断,如果对录入的分数进行
9、判断,如果小于小于0,标记出错状态,并立,标记出错状态,并立即跳出整个即跳出整个for循环循环问题问题3完整代码演示完整代码演示110之间的整数相加,得到累加值大于20的当前数1、使用循环进行累加,从、使用循环进行累加,从1到到102、判断累加值是否大于、判断累加值是否大于203、如果大于、如果大于20,则跳出循环,并打印当前值,则跳出循环,并打印当前值/定义一个变量,进行累加定义一个变量,进行累加 int sum=0;for(int i=1;i 20)printf(当前数是当前数是:%d“,i);break;参考代码参考代码小结2演示运行效果演示运行效果为什么需要continue语句 4、循
10、环录入C语言课的学生成绩,统计分数大于等于 80分的学生比例1、通过循环,获得分数大于、通过循环,获得分数大于等于等于80分的学生人数分的学生人数num2、判断:如果成绩、判断:如果成绩80,不,不执行执行num+,直接进入下一,直接进入下一次循环次循环什么是continue语句continue:只能用在循环里continue 作用:跳过循环体中剩余的语句而执行下一次循环while()continue;继继续续下下一一次次循循环环通常与条件语句一起使通常与条件语句一起使用,加速循环用,加速循环for(int i=0;i10;i+)跑跑400米;米;if(!口渴)(!口渴)continue;/不
11、喝水,继续不喝水,继续跑跑 接过水壶,喝水接过水壶,喝水;示例示例如何使用continue for(int i=0;i total;i+)System.out.print(请输入第请输入第+(i+1)+位学生的成绩:位学生的成绩:);score=input.nextInt();if(score 80)continue;num+;/大于等于大于等于80分的人数分的人数double rate=(double)num/total*100;System.out.println(80分以上的学生所占的比例为:分以上的学生所占的比例为:+rate+%);对录入的分数进行判断,如对录入的分数进行判断,如果小
12、于果小于80,跳出本次循环,跳出本次循环,执行下一次循环执行下一次循环问题问题4完整代码完整代码1、使用循环进行累加,循环的范围是从、使用循环进行累加,循环的范围是从1至至102、判断当前数是否为偶数、判断当前数是否为偶数3、如果为奇数跳过,执行下一个循环,如果为偶数,进、如果为奇数跳过,执行下一个循环,如果为偶数,进行累加行累加int sum=0;/定义一个变量,进行累加定义一个变量,进行累加for(int i=1;i=10;i+)if(i%2=1)continue;/如果如果i为奇数,结束本次循环,进行下一次循环为奇数,结束本次循环,进行下一次循环 sum=sum+i;printf(1-1
13、0之间的偶数和是之间的偶数和是:%d“,sum);小结3求110之间的所有偶数和 完整代码完整代码演示运行效果演示运行效果对比break和continue对比方法:通过Eclipse单步运行,观察程序执行顺序变量值的变化观察案例案例1:110之间的整数相加,得到累加值大于20的当前数 案例2:求110之间的所有偶数和小结4说一说在循环中使用continue和break的区别?int sum=0;for(int i=0;i5;i+)if(i=3)break;sum=sum+i;System.out.println(sum=+sum);sum=3sum=7输出值是多少?如果将break替换成con
14、tinue,输出值又为多少?替换后替换后循环总结2-2int i=0;int sum=0;while(i10)sum=sum+i;i+;int i=0;int sum=0;do sum=sum+i;i+;while(i10);int sum=0;for(int i=0;i10;i+)sum=sum+i;123412341234while和和for相同,先进行判断,后执行循环体内容相同,先进行判断,后执行循环体内容do-while是先执行,后判断,至少执行一次是先执行,后判断,至少执行一次指出各种循环结构的执行顺序指出各种循环结构的执行顺序 控制流语句小结顺序结构:语句顺序执行 分支结构:语句在满足条件下执行if,if-else,if-else if-else,switch 循环结构:语句在满足条件下循环执行多次while,do-while,for跳转语句break,continue for循环结构如何执行?循环结构如何执行?在循环中使用什么方式跳出或终止循环?在循环中使用什么方式跳出或终止循环?break与与continue之间的差别是什么?之间的差别是什么?总结