欢迎来到天天文库
浏览记录
ID:44959555
大小:243.00 KB
页数:28页
时间:2019-11-06
《第5章_循环结构》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第5章循环结构goto语句构成循环非结构化程序设计的方式来构成循环,即使用无条件转移语句goto语句。一般格式:goto语句标号goto语句说明作用是将程序的控制流转移到在goto语句中制定的标号后之后的第一条语句;标号是跟有“:”的标识符,它必须与引用它的goto语句在同一个函数中,但可以不在同一个循环层中。4.1while循环结构一般形式:while(表达式)循环体语句;执行流程:expr循环体假(0)真(非0)while特点:先判断表达式,后执行循环体说明:循环体有可能一次也不执行循环体可为任意类型语句下列情况,退出wh
2、ile循环条件表达式不成立(为零)循环体内遇break,return,goto在循环体内必须要有使循环结束的语句,如果无此语句则循环便成了“无限循环”无限循环:while(1)循环体;例用while循环求/*ch5_2.c*/#includemain(){inti,sum=0;i=1;while(i<=100){sum=sum+i;i++;}printf("%d",sum);}循环初值循环终值循环变量增值循环条件循环体注意:循环控制变量值在循环体内必须有所改变。例如:请问下例中循环结束时i值为多少?i=1;w
3、hile(i<=100)putchar(‘*’);i++;这个循环永远不会结束,因为循环控制变量i没有在循环体内被改变,i++;不属于循环语句。i++应该在循环体内改变:{}do循环体语句;while(表达式);执行流程:do循环体expr假(0)真(非0)while4.2do…while循环结构一般形式:特点:先执行循环体,后判断表达式说明:至少执行一次循环体do~while可转化成while结构expr循环体假(0)真(非0)循环体While循环例用do~while循环求/*ch5_3.c*/#include4、h>main(){inti,sum=0;i=1;do{sum+=i;i++;}while(i<=100);printf("%d",sum);}例while和do~while比较/*ch5_4.c*/#includemain(){inti,sum=0;scanf("%d",&i);do{sum+=i;i++;}while(i<=10);printf("%d",sum);}#includemain(){inti,sum=0;scanf("%d",&i);while(i<=10){sum+=i;i5、++;}printf("%d",sum);}1、跳出循环时循环控制变量的值应为多少?如果输入值为1,10,20时呢?2、输出结果呢?1.while结构与do-while循环结构相类似.2.但要注意区别:前者:先判断表达式,再执行语句。至少要执行0次后者:先执行语句,再判断表达式。至少要执行1次。3.也就是说用两种循环结构处理同一问题时,若二者的循环体部分是一样的,当while后面表达式的第一次的值为“真(非0)”时,两种循环结构得到的结果相同,否则二者的结果不相同。While与do–while循环结构的比较4.3for循环结构6、一般形式:for([expr1];[expr2];[expr3])循环体语句;执行流程:for(循环变量赋初值;循环条件;改变循环变量)表达式1表达式2循环体表达式3TFfor语句一般应用形式:for(循环变量赋初值;循环条件;循环变量增值){循环体语句;}说明:for语句中expr1,expr2,expr3类型任意,都可省略,但分号;不可省无限循环:for(;;)for语句可以转换成while结构expr1;while(expr2){循环体语句;expr3;}例用for循环求#includemain(){i7、nti,sum=0;for(i=1;i<=100;i++)sum+=i;printf("%d",sum);}例:#includemain(){inti;for(i=0;i<10;i++)putchar(‘a’+i);}运行结果:abcdefghij例:#includemain(){inti=0;for(;i<10;i++)putchar(‘a’+i);}例:#includemain(){inti=0;for(;i<10;)putchar(‘a’+(i++));}例:#inc8、ludemain(){inti=0;for(;i<10;putchar(‘a’+i),i++);}逗号运算符的主要应用在for语句中的表达式1或表达式3建议为了增强程序的可读性,尽量不省略for结构中的表达式。main(){inti,j,k;for(i=0,
4、h>main(){inti,sum=0;i=1;do{sum+=i;i++;}while(i<=100);printf("%d",sum);}例while和do~while比较/*ch5_4.c*/#includemain(){inti,sum=0;scanf("%d",&i);do{sum+=i;i++;}while(i<=10);printf("%d",sum);}#includemain(){inti,sum=0;scanf("%d",&i);while(i<=10){sum+=i;i
5、++;}printf("%d",sum);}1、跳出循环时循环控制变量的值应为多少?如果输入值为1,10,20时呢?2、输出结果呢?1.while结构与do-while循环结构相类似.2.但要注意区别:前者:先判断表达式,再执行语句。至少要执行0次后者:先执行语句,再判断表达式。至少要执行1次。3.也就是说用两种循环结构处理同一问题时,若二者的循环体部分是一样的,当while后面表达式的第一次的值为“真(非0)”时,两种循环结构得到的结果相同,否则二者的结果不相同。While与do–while循环结构的比较4.3for循环结构
6、一般形式:for([expr1];[expr2];[expr3])循环体语句;执行流程:for(循环变量赋初值;循环条件;改变循环变量)表达式1表达式2循环体表达式3TFfor语句一般应用形式:for(循环变量赋初值;循环条件;循环变量增值){循环体语句;}说明:for语句中expr1,expr2,expr3类型任意,都可省略,但分号;不可省无限循环:for(;;)for语句可以转换成while结构expr1;while(expr2){循环体语句;expr3;}例用for循环求#includemain(){i
7、nti,sum=0;for(i=1;i<=100;i++)sum+=i;printf("%d",sum);}例:#includemain(){inti;for(i=0;i<10;i++)putchar(‘a’+i);}运行结果:abcdefghij例:#includemain(){inti=0;for(;i<10;i++)putchar(‘a’+i);}例:#includemain(){inti=0;for(;i<10;)putchar(‘a’+(i++));}例:#inc
8、ludemain(){inti=0;for(;i<10;putchar(‘a’+i),i++);}逗号运算符的主要应用在for语句中的表达式1或表达式3建议为了增强程序的可读性,尽量不省略for结构中的表达式。main(){inti,j,k;for(i=0,
此文档下载收益归作者所有