- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
件转向使程序结构无规律、可读性差。一般应避 免使用goto语句,但如果能大大提高程序的执行 效率,也可以使用。
Example 5_1
1. #include <stdio.h>
2. main()
3. { int x;
4. x = 3;
5. ab: x+=2; /* ab: 语句标号 只能写在语句行的最左边*/
main() { int x,y,sun,t;
printf(”请输入两个整数(前大后小):” ); scanf(”%d%d”,&x,&y ); printf(”%d和%d之间所有的偶数的和是:”,x,y); while( x<y) { if( x%2==0 )
sum+=x; x++; } printf(”%d\n” ,sum); }
s+=i; i++; /* 准备判断下一个自然数 */ }while(i<n); /* i<n 表示条件成立,循环执行 */ printf("s=%d\n",s); }
while和do-while循环的比较
main( ) { int i,s=0;
scanf(“%d”,&i); do {s=s+i; i++; }while(i<=10); printf(“s=%d”,s);
do while语句
一般格式: do 语句(循环体) while(表达式);
特点: “直到型”循环结构。先执行一次“语 句”,判“表达式”,当“表达式” 非0,再执行“语句”,直到“表达式” 为0,循环结束。
do while 注意点
do后面没有分号; 语句的位置上只能到第一个分号处,也就是
注意事项
while后面的”()”不能少 表达式的可以使任意合法的表达式 语句的位置上只能有一条语句, while语句范
围只到while后面第一个分号处。超过一条 用“{}”括起来 while语句的循环体可能一次都不执行 循环体中必须有使循环趋于结束的语句, 否则程序进入“死循环”(不结束)。
for语循句环变量赋
初值
循环条件
循环变 量增量
循环体 部分
一般格式 for(表达式1;表达式2;表达式3) 语句
执行过程:
(1)求表达式1; (2)求表达式2,若为 “真”,执行“语句”; 若为假,转第(5)步。 (3)求表达式3。 (4)转第(2)步。 (5)执行for语句下面的语 句。
Example 5_5 计算n以内所有自然数之和
Example 5_2 计算
#include <stdio.h> main() {
int i,sum=0; i = 1; while (i <= 100) { sum = sum + i;
i++; } printf("%d",sum); }
Example 5_3 输入两个整数x和y,计算x和y之间所 有的偶数之和
求1~100的累计和。
根据已有的知识,可以用 “1+2+……+100”来求解,但显然很繁琐。 现在换个思路来考虑:
首先设置一个累计器sum,其初值为0, 利用sum += n来计算(n依次取1、2、……、 100),只要解决以下3个问题即可:
(1)将n的初值置为1; (2)每执行1次“sum += n”后,n增1; (3)当n增到101时,停止计算。此时, sum的值就是1~100的累计和。
main( ) { int i,s=0;
scanf(“%d”,&i); while(i<=10) {s=s+Байду номын сангаас; i++; } printf(“s=%d”,s);
} 运行情况如下:
} 运行情况如下:
说明
在一般情况下,用while和do-while语句解 决同一问题时,若二者的循环体部分是一 样的,它们的结果也一样。但当while后面 的“表达式”一开始就为“假”时,两种 循环的结果不同。这是因为此时while循环 的循环不被执行,而do-while循环的循环体 被执行一次。
只能有一条语句,超过用{}构成复合语句 表达式可以是任意表达式
Example 5_4 计算n以内所有能被3整除或者能被7整除的 自然数之和
/*从3开始,各个自然数i逐个进行比较,直到自然数i不小于n则循环结束*/
#include "stdio.h" main() { int n,i,s;
printf("请输入一个整数:"); scanf("%d",&n); /* 输入一个整数给n */ s=0; /* s用来存放满足条件的自然数之和,和的初值为0 */ i=3; /* 从3开始 */ do { if( i%3==0 || i%7==0 ) /*余数为0表示整除 */
等
i=0;
价 while( i<n )
于
{
}
s+=i; i++;
for语句说明
(1)for 语句中条件测试总是在循环开始时 进行;如果循环体部分是多个语句组成的 ,则必须用左、右花括号括起来,使其成 为一个复合语句。
(2) for语句中的表达式1和表达式3即可以是一 个简单的表达式,也可以是逗号连接的多 个表达式,此时的逗号作为运算符使用。
6. if( x<20 )
7.
goto ab;
8. printf("%d\n",x);
9. }
while 语句
一般形式: while(表达式) 语句
作用:实现“当型”循环。 当“表达式”非0(真) 时,执行“语句”。“语 句”是被循环执行的程序, 称为“循环体”。
特点:先判“表达式(条 件)”。
#include "stdio.h"
main()
{ int n,i,s; printf("请输入一个整数:");
scanf("%d",&n);/* 输入一个整数给n */ s=0; /* s存储和,初值为0 */
for(i=0;i<n;i++)
s+=i;
printf("s=%d\n",s);
}
for(i=0;i<n;i++) s+=i;
第五章 循环结构
1、用goto语句和if语句构成循环。 2、用while语句。 3、用do-while语句。 4、用for语句。
If语句和goto语句构成的循环
一般形式:goto 语句标号; 作用:无条件转向语句标号处执行 语句标号:合法的标识符后面加个冒号”:” 语句标号必须于此goto语句在同一个函数中 goto语句不符合结构化程序设计准则,因为无条