资源描述:
《第5章_循环结构ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、5第五章循环程序设计7/28/20211在C语言中可用以下语句构成循环:if…gotowhiledo…whilefor其中if…goto是通过编程技巧(if语句和goto语句组合)构成循环功能。而且goto语句将影响程序流程的模块化,使程序可读性变差,所以结构化程序设计主张限制goto语句的使用。其他三种语句是C语言提供的循环结构专用语句。7/28/20212重庆工学院计算机学院基础系循环结构两大要素:循环条件p结束循环的条件表达式循环体A循环执行的语句或语句组设置循环条件要特别注意确定:循环变量的初
2、值循环变量的终值循环变量的变化规律名词解释无限循环死循环名词解释空循环7/28/20213重庆工学院计算机学院基础系【例二】main(){intn=0,sum=0;loop:if(sum>=10000)gotoend;sum+=n;++n;gotoloop;end:printf(“n=%d”,n);}直到型当型1、if…goto语句循环结构【例一】main(){intn=0,sum=0;loop:sum+=n;++n;if(sum<=10000)gotoloop;printf(“n=%d”,n
3、);}7/28/20214重庆工学院计算机学院基础系5.1、while语句循环结构【例5_1】main(){inti=1,sum=0;while(i<=99){sum+=i;i=i+2;}printf(“sum=%d”,sum);}当型一般形式while(条件表达式)循环体;用于构成当型循环:先判断后执行/条件为真继续循环,直到条件为假时结束循环。【注意】条件表达式或循环体内应有改变条件使循环结束的语句,否则可能陷入“死循环”。7/28/20215重庆工学院计算机学院基础系Voidmain(){i
4、ntcount=0;charch;scanf(“%c”,&ch);while(ch!=‘#’){count++;scanf(“%c”,&ch);}printf(“total=%d”,count);}例5_2:pp897/28/20216重庆工学院计算机学院基础系5.2、do…while语句循环结构【例5_3】main(){inti=1,sum=0;do{sum+=i;i=i+2;}while(i<=99)printf(“sum=%d”,sum);}一般形式do{循环语句(组)}while(条件表达
5、式);用于构成直到型循环:先执行后判断/条件为真继续循环,直到条件为假时结束循环。【注意】条件表达式或循环体内同样应有改变条件使循环结束的语句,否则可能陷入“死循环”。直到型直到1超过99为止7/28/20217重庆工学院计算机学院基础系上述两个程序的区别【例5_1】main(){inti=1,sum=0;while(i<=99){sum+=i;i=i+2;}printf(“sum=%d”,sum);}【例5_3】main(){inti=1,sum=0;do{sum+=i;i=i+2;}while
6、(i<=99)printf(“sum=%d”,sum);}7/28/20218重庆工学院计算机学院基础系【例五】从键盘输入一个整数12456,分析以下程序运行结果。main(){intnum,c;printf(“请输入一个整数:“);scanf(“%d”,&num);do{c=num%10;printf(“%d”,c);}while((num/=10)>0);printf(“”);}/*取得num的个位数*//*输出num的个位数*//*直到num/10为0*/结果:65421将各位数字反序显
7、示出来do…while语句循环结构示例7/28/20219重庆工学院计算机学院基础系for循环的一般形式是:for(表达式1;表达式2;表达式3)循环体;C语言中的for语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。5.3、for语句循环结构7/28/202110重庆工学院计算机学院基础系表达式2?执行语句成立不成立执行for循环之后的语句执行表达式3执行表达式1循环初始条件循环控制条件循环体for语句等价于下
8、列语句:表达式1;while(表达式2){语句;表达式3;}7/28/202111重庆工学院计算机学院基础系【例5_5】求∑i=1+3+5…+99main(){inti,sum=0;for(i=1;i<=99;i=i+2)sum=sum+i;printf(“sum=%d”,sum);}【例5_6】输入10个数,找出最小值main(){inti,x,min;scanf(“%d”,&x);min=x;for(i=2;i<=10;i=i++){scanf(