文档详情

第3章控制结构(选择循环)讲解.ppt

发布:2017-02-11约1.08万字共45页下载文档
文本预览下载声明
§3.4?? 循环的嵌套 程序的结果为: 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 ……. #includestdio.h main() {int i,j; for(i=1;i10;i++) { for(j=1;j=i;j++) printf(“%d*%d=%2d ”,i,j,i*j); printf(“\n”);} } ?注意循环控制变量的初值和终值. §3.4?? 循环的嵌套 思考: 要打印九九表如下,该如何修改程序? 1*1=1 1*2=2 ………. 1*9=9 2*1=2 2*2=4 …… 2*8=16 ….. 9*1=9 §3.5?? break和continue语句 1、break 语句 可以用于从循环体内跳出循环体,提前退出循环。 使用形式: break ; 注意:break只能用于循环语句和switch语句中。 2、continue 语句 其作用是结束本次循环,即跳过循环体下面还未执行的语句;回到循环开头的条件判断处,重新判断是否再次执行循环。 使用形式: continue ; 区别:break 是结束整个循环过程。 continue 是终止本次循环。 §3.5?? break和continue语句 例:把100__200之间不能被3整除的数输出。 Main() { int n; for( n=100; n=200 ; n++ ) { if (n % 3 == 0 ) continue ; printf(“%d ”, n); } } Main() { int n; for( n=100; n=200 ; n++ ) { if (n % 3 == 0 ) break; printf(“%d ”, n); } } 输出:100 101 §3.6 使用循环时常见错误 (1) 误将“=”作为等号使用。 这是最常见的死循环之一,例如: while(a=1) {……} (2) 忘记用花括号括起循环中的多条语句。如:a=1; while(a=10) printf(“a=%d\n”,a); a++; (3) 在不该加分号的地方加了分号。如: for(i=1;i10;i++); sum=sum+i; §3.6 使用循环时常见错误 (4) 循环变量没有改变。例如: i=1; while(i10) sum=sum+i; (5) 对变量的变化范围认识不够。如: for(i=0;i40000;i++){……} (6) 输入有误。如: for(i=1;i10;i++) for(j=1;j10;i++) {……} 注意:本章不要求内容:位运算,goto,exit(). 示 例 【例1】求n! ,即计算p=1×2×3×…×n的值。 思路:求阶乘与求累加的运算处理过程类似,只要将“+”变为“*”。 设置: 乘数i ,初值为1,终值为n(n是循环控制终值,需要从键盘输入) 累乘器 p ,每次循环令p = p*i 程序: main( ) { int i, n; long p; p=1; printf(Enter n:); scanf(%d,n); for (i=1; i=n; i++) p = p * i; printf(p = %ld \n,p); } 思考: 如何输出1!, 2!, … , n! ? 如何求s =1!+ 2!+ … + n! ? 示 例 【例2】把100~200之间能被7整除的数,以十个数为一行的形式输出,最后输出一共有多少个这样的数。 分析:1:循环范围; 2、被7整除; 3:每行输出10个这样的数; 4:总计数满足条件的数个数 main( ) { int n,j=0; for(n=100;n=200;n++) { if (n%7!=0) continu
显示全部
相似文档