4.2for 循环(课件) -《C语言程序与设计》同步教学(高教版.第五版)

2024-11-01
| 18页
| 269人阅读
| 28人下载
普通

内容正文:

4.3 for循环 for语句的一般形式是: for(表达式1;表达式2;表达式3) { 语句序列 } //如果循环体想要包含更多语句,可以加上{} 表达式1:用于循环变量的初始化 表达式2:用于循环结束条件的判断 表达式3:用于循环变量的调整 for语句的执行过程 表达式1 表达式2 语句序列 表达式3 假(0) 真(非0) for语句的执行过程 先执行 表达式1 初始化循环变量,接下来就是执行 表达式2 的判断部分, 表达式2的结果如果 ==0,则循环结束; 表达式2 的结果如果!=0则执行循环语句,循环语句执行完后,再去执行表达式 3 ,调整循环变量,然后再去 表达式2 的地方执行判断, 表达式2 的结果是否为0,决定循环是否继续。 整个循环的过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3在循环。 例:从键盘上输入10个整数,求其和。 main( ) { int i, num, sum; sum = 0; for(i=1; i<=10; i++) { scanf("%d", &num ); sum = sum + num; } printf("这10个整数的和为:%d", sum ); getch( ); } 说明: 当求累加值时,存放累加值的变量sum的初值应该为0。 for括号中用两个分号分隔的三个表达式:“表达式1”只在循环开始时执行一次;“表达式2”是循环条件,在每一轮循环开始前进行计算,如果结果为真则执行循环体,否则退出for循环;“表达式3”用于循环变量的更新。 可以省略for语句括号中的一个或几个表达式,但不能省略分号。 实践: 在屏幕上打印1~10的值 例题:从键盘上输入若干个整数,直到输入0为止,求它们的乘积。 for语句一般用于循环次数比较明确的情形,而while或do_while语句则用于循环次数难以判定的情形。 main( ) { int n; long t = 1; // 累乘初值为1 scanf("%d", &n ); // 输入第一个整数 while ( n != 0 ) { t= t * n; scanf("%d", &n ); // 输入下一个整数 } printf("%ld ", t ); // 输出长整型数据 getch( ); } 运行时, 输入:5 4 7 0 ↙ 则输出:140 练一练:从键盘上输入若干个小数,直到输入1为止,求它们的乘积。 while循环与for循环对比  for和while实现循环的时候都包含这三个部分:初始化、判断和调整。如下图,给我们更直观的感受是,for循环这三个部分更加集中一些,这样有利于我们对代码的维护,而如果代码较多的时候 while 循环的三个部分就比较分散,所以从形 式上 for 循环要更优⼀些。 4.4 多重循环 一个循环的循环体中又包含另一个循环,称为循环嵌套。这个嵌套重复下去,就是多重循环,也称为嵌套循环。 while、do_while、for可以相互嵌套,自由组合。 4.4循环的嵌套 练习: 找出100~200之间的素 数,并打印在屏幕上。 4.4循环的嵌套 题⽬解析: 1. 要从100~200之间找出素数,⾸先得有100~200之间的数,这⾥可以使用循环解决。 2. 假设要判断i是否为素数,需要拿2~i-1之间的数字去试除i,需要产生2~i-1之间的数字,也可以使用循环解决。 3. 如果2~i-1之间有数字能整除i,则i不是素数,如果都不能整除,则i是素数。 4.4拓展 goto语句         C语言提供了一种非常特别的语法,就是goto语句和跳转标号,goto语句可以实现在同一个函数内,跳转到设置好的标号处。 goto语句如果使用不当,会导致在函数内部随意跳转,打乱程序的执行流程。所以,一般不建议使用goto语句。但goto语句不是一无是处,在多层循环中,如果想要快速跳出,就可以使用goto语句,这样就方便多了。 4.4拓展 本来for循环想要提前跳出,必须使用break,但是一个break只能跳出一层for循环,在这里使用在这种情况下goto语句就会更加便捷。 练习:打印九九乘法表。 main( ) { int i, j; for(i=1; i<10; i++) printf ( "%8d", i ); printf (" ---------------------------------" ); printf ("----------------------------------- " ); for ( i = 1; i < 10; i++ ) { for ( j = 1; j <= i; j++ ) printf ( " %2d * %d = % -3d ", i, j , i*j ); printf ( " " ); // 换行 } getch ( ); } 格式符“%8d”的作用是使输出的 每个数据占8个字符位置,右对齐; “%-3d”表示占3列,左对齐。 4.5 break语句和continue语句 break break语句也可以用于循环结构中,使程序提前跳出循环,结束循环,转移到循环后面的语句。 例4-7:求不同半径的圆柱体的体积,只计算体积在100以下的圆柱体。 continue语句 continue语句的作用是:流程跳过循环体中该语句后的所有语句,提前结束本轮循环,直接进入下一轮循环。 continue语句与break语句的区别是:前者只是结束本次循环,而不是结束整个循环;后者则是结束整个循环。 例4-8:输出50到100之间所有不能被7整除的数。 4.6 循环结构应用实例 练习1:判断一个数是否为素数。 练习2:找出100到200之间所有的素数。 练习3:输入两个整数,求它们的最大公约数。方法是,采用“碾转相除法”,即反复模除取余,直到余数为0。 本章小结 用于实现循环结构的语句有:while语句、do_while语句、for语句。 循环结构的特点是:循环体内的代码可能被反复执行多次。 while语句和for语句都是先判断循环条件再决定是否执行循环体,可能一次循环也不执行。 do_ while语句则是先执行循环体再判断循环条件,至少执行循环体一次。 break和continue是循环的辅助语句, continue只能用于循环语句。 $$

资源预览图

4.2for 循环(课件) -《C语言程序与设计》同步教学(高教版.第五版)
1
4.2for 循环(课件) -《C语言程序与设计》同步教学(高教版.第五版)
2
4.2for 循环(课件) -《C语言程序与设计》同步教学(高教版.第五版)
3
4.2for 循环(课件) -《C语言程序与设计》同步教学(高教版.第五版)
4
4.2for 循环(课件) -《C语言程序与设计》同步教学(高教版.第五版)
5
4.2for 循环(课件) -《C语言程序与设计》同步教学(高教版.第五版)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。