第五章 循环控制 .ppt
文本预览下载声明
贵州大学人民武装学院 5.6 几种循环的比较 (1)四种循环都可以用来处理同一问题,一般情况下它们可以互相代替。但一般不提倡用goto型循环。 (2)在while循环和do-while循环中,只在while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环体中包含使循环趋于结束的语句(如i++,或i=i+1等)。for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中。因此for语句的功能更强,凡用while循环能完成的,用for循环都能实现。 贵州大学人民武装学院 5.6 几种循环的比较 (3)用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。 (4)while循环、do-while循环和for循环,可以用break语句跳出循环,用continue语句结束本次循环(break语句和continue语句见下节)。而对用goto语句和if语句构成的循环,不能用break语句和continue语句进行控制。 贵州大学人民武装学院 5.7 程序举例 #include stdio.h #include math.h void main() { int m,i,k; scanf(%d,m); k=sqrt(m); for (i=2;i=k;i++) if(m%i==0) break; if(ik) printf(%d is a prime number\n,m); else printf(%d is not a prime number\n,m); } 例:判断某数是否是素数 贵州大学人民武装学院 分别用for、while、do-while语句写求50人平均成绩的程序 需要能接收用户输入50人成绩,但无须保存 需要求50人成绩的和 需要求平均分 贵州大学人民武装学院 * 贵州大学人民武装学院 贵州大学人民武装学院 C程序设计 THE C PROGRAMMING LANGUAGE INSTRUCTOR: 姜毅 EMAIL: jiang_yi123@ 课前练习 贵州大学人民武装学院 #includestdio.h void main() { int x=1, y=1, z=1; x += y += z; printf( “%d”,x y ? y : x ); printf (“%d”, x y ? x ++ : y ++ ); printf (“%d”, x); printf(“%d”, y); printf (“%d”, z += x y ? x ++ : y ++ ); printf (“%d”, y); printf(“%d”, z); x = 3; y = z = 4; printf (“%d”,(z = y = x) ? 1 : 0 ); printf (“%d”, z = y y = x ); } //输出3 //输出2 //输出3 //输出3 //输出4 //输出4 //输出4 // //输出0 //输出1 程序举例 09 几种循环的比较 06 Break语句和continue语句 05 循环嵌套 04 for语句 03 02 do-while语句与while语句 贵州大学人民武装学院 循环的概念 01 第五章 循环结构程序设计 贵州大学人民武装学院 5.1概述 考虑问题:写求3人平均成绩的程序 分析: 需要接收用户输入3人成绩 需要3人成绩的和 需要用总成绩除以3并输出 贵州大学人民武装学院 5.1概述 float a1,a2,a3,avl,sum=0 scanf(“%f%f%f”,a1,a2,a3) sum=a1+a2+a3 avl=sum/3 printf(“%f”,avl) 算法流程分析 求50人平均成绩? float a,avl,sum=0 scanf(“%f”,a) sum=sum+a scanf(“%f”,a) sum=sum+a scanf(“%f”,a) sum=sum+a avl=sum/3 printf(“%f”,avl) 方法1: 方法2: 贵州大学人民武装学院 5.1概述 float a,avl, sum=0 scanf(“%f”,a) sum=sum+a 做50次 avl=sum/50 printf(“%f”,avl) float a,avl, sum=0 scanf(“%f”,a) sum=sum+a
显示全部