资源描述:
《C语言经典教程6讲(3-20)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第6讲第6章:循环控制循环的例子求1+2+3+4+5+…..+1000的值统计班级中成绩及格的人数,并计算全班的平均分求1000之内能被13整除的数。等等。。。。几乎所有实用的程序都包含循环。7/17/20212第6章循环结构特点:有条件的重复地执行某个程序块循环结构两大要素:循环条件p结束循环的条件表达式循环体A循环执行的语句(组)7/17/20213强调:避免死循环。即循环条件不能一直为真。设置循环条件要注意:循环变量的初值i=0循环变量的终值i<=5循环变量的变化规律i++7/17/20214本章内容6.1C语言中的四种循环语句:if…gotow
2、hiledo…whilefor6.2循环的嵌套6.3Break与continue语句6.4程序举例7/17/20215无条件转移语句,与if语句一起构成循环结构。goto语句标号;main(){inti=1,sum=0;loop:if(i<=100){sum=sum+i;i++;gotoloop;}printf(“%d”,sum);}例:求6.1.1goto语句注意:结构化程序设计方法主张限制使用goto语句。滥用goto,使流程无规律,可读性差7/17/20216while(表达式)语句实现“当型”循环结构。当表达式为非0值时,执行while语句中的
3、内嵌语句。特点是:先判断表达式,后执行语句。执行次数最少为0。6.1.2while语句7/17/20217i=1Sum=0i<=100Sum=sum+ii++YNPrintf(“%d”,sum)例1:求7/17/20218#includemain(){inti,sum=0;i=1;while(i<=100){sum=sum+i;i++;}printf("%d",sum);}循环条件循环体循环变量增值循环初值7/17/20219例2:输入一个最多5位的正整数,将各数按位颠倒输出。如1234,输出4321main(){longn,d;pr
4、intf(“Enteradata(1-99999):”);scanf(“%ld”,&n);/*n位数不定*/while(n!=0){d=n%10;printf(“%d”,d);n=n/10;}}7/17/202110使用while语句应注意以下几点:1.while语句中的表达式一般是关系表达或逻辑表达式,只要表达式的值为真(非0),即可继续循环。voidmain(){inta=0,n;printf(“inputn:”);scanf(“%d”,&n);while(n--)printf(“%dt”,a++*2);}输入:5输出:02468本例程序将执
5、行n次循环,每执行一次,n值减1。循环体输出表达式a++*2的值。该表达式等效于(a*2;a++)7/17/2021112.循环体如包括有一个以上的语句,则必须用{}括起来,组成复合语句。3.应注意循环条件的选择以避免死循环。voidmain(){inta,n=0;while(a=5)printf("%d",n++);}7/17/202112do循环体语句while(表达式);采用“直到型”循环结构。直到表达式为假时,停止执行循环体语句。特点是:先执行循环体,然后判断循环条件是否成立。执行次数最少为1。6.1.3do-while语句7/17/2021
6、13i=1Sum=0i<=100Sum=sum+ii++YNPrintf(“%d”,sum)例1:求7/17/202114#includemain(){inti,sum=0;i=1;do{sum=sum+i;i++;}while(i<=100);printf("%d",sum);}循环条件循环体循环变量增值循环初值7/17/202115例2:从键盘输入一行字符,并统计字符中的英文字母个数。只要从键盘输入的字符不是回车就继续循环。用n++对字母个数计数。#includevoidmain(){charch;intn=0
7、;do{ch=getchar();/*循环体*/if(ch>=‘a’&&ch<=‘z’
8、
9、ch>=‘A’&&ch<=‘Z’)n++;}while(ch!=‘’)/*循环条件*/printf(“%d”,n);}7/17/202116do-while语句应注意以下几点:1.在while语句中,表达式后面都不能加分号,而在do-while语句的表达式后面则必须加分号。while()do{…}{……}while();2.在do和while之间的循环体由多个语句组成时,也必须用{}括起来组成一个复合语句。3.一般,同一个问题能用while语句处理时,也能
10、用do-while语句处理,两者可以相互替换。但若一开始条件就不满足时,do-while会比w