欢迎来到天天文库
浏览记录
ID:40542362
大小:396.31 KB
页数:16页
时间:2019-08-04
《语句标号、goto语句及其构成的循环 while语句及其构成的循环》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9讲语句标号、goto语句及其构成的循环while语句及其构成的循环5.1语句标号、goto语句及用goto语句构成的循环5.2while语句和用while语句构成的循环5.6break语句和continue语句在循环体中的作用第五章循环结构程序设计循环结构是结构化程序设计的三种基本结构之一,也是最重要、最常用的一种基本结构。其特点是:在给定条件成立时,反复执行某程序段,直到给定条件不成立时为止。给定的条件称为循环条件,反复执行的程序段称为循环体。循环结构C语言可以用如下语句实现循环:1.用goto语句和if语句构成循环。2.用
2、while循环语句。3.用do-while循环语句。4.用for循环语句。5.1goto语句及用goto语句构成循环1.语句标号语句标号就是给程序中的某一个语句定义的标识符,标号可以是任意合法的标识符,在语句标号和语句之间必须加一个冒号作为分隔符。C程序中的任何一个可执行语句之前都可以加上语句标号。例如:stop:printf("END");通常,语句标号只是用作goto语句的转向目标。如:gotostop;如果程序中没有用goto语句改变程序的执行顺序,也就没有必要出现语句标号。2.goto语句goto语句称为无条件转向语句
3、。goto语句的一般形式为:goto语句标号;goto语句的作用是把程序的执行转移到语句标号所在的位置,但这个语句标号必须与此goto语句在同一个函数之内。goto语句不符合结构化程序设计的原则,因为无条件转向使得程序的结构没有规律、可读性差。对于初学者来说应尽量避免使用goto语句,但如果使用goto语句能够大大地提高程序的执行效率,也可以使用。3.用goto语句构成的循环结构#include"stdio.h"main(){intn=0;charch;printf("inputastring");loop:ch=getcha
4、r();n++;if(ch!='')gotoloop;n=n-1;/*不要字符''*/printf("%d",n);}goto语句通常与条件语句配合构成条件转移语句,用来实现构成循环或跳出循环等功能。例5.1统计从键盘输入的一行字符的个数。例5.2输入一组数据求和#includemain(){intnumber,sum=0;loop:scanf("%d",&number);sum+=number;if(number!=0)gotoloop;printf("Thetotalsumis%d",sum);}
5、从键盘输入完一组数据后,再输入一个0作为结束输入数据的标志。5.2while循环语句由while语句构成的循环也称”当”循环。while循环的一般形式如下:while(表达式)循环体语句图5.1while循环流程图while语句的执行过程是:先计算while表达式的值,当表达式的值为非零时,便执行循环体语句,之后再计算该表达式的值,由此构成循环,直到有一次求得表达式的值为零时才结束循环,并继续执行循环体语句之外的后续语句。图5.1while循环流程图#includemain(){intn=0;charch;pri
6、ntf("inputastring:");ch=getchar();while(ch!=''){n++;ch=getchar();}printf("%d",n);}用while语句改写例5.1的程序题目:统计从键盘输入的一行字符的个数。说明:(1)while语句中的表达式可以是任意合法的C表达式。(2)如果循环体语句是复合语句,一定要用{}括起来。(3)在循环体语句中应该包含能够使循环趋于结束的操作,以避免出现死循环。例5.3编程求1+2+3+…+100的值。这是一个求100个数的累加和问题。所加的加数从1变化到100,因
7、此我们可以在循环体中设计一个整型变量i,使它的初值为1,每循环一次使i的值增1,一直循环到i的值超过100为止,用这个办法就解决所需的加数问题。要解决求累加和的问题,还要再设计一个变量sum用来存放这100个数的和值,先求0+1的和并将其放在sum中,然后把sum中的数加上2再存放在sum中,依次类推。在这里,sum累加的过程要放在循环体中,由计算机来判断所加的数是否已经超过100。main(){inti,sum;i=1;sum=0;while(i<=100){sum=sum+i;i++;}printf("sum=%d",su
8、m);}程序运行后的输出结果:sum=5050例5.3程序,求1+2+3+…+100的值
此文档下载收益归作者所有