第五章 C语言多重循环语句

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三、while语句的功能:
当表达式为非0时重复执行循环体。
四、注意事项:
1.while 语句的特征是”先判断后执行”;允许0次循环。 2.如果循环体包含一个以上的语句,那么应该用复合语 句“{ }”的形式。
例如,程序段1: sum=i=0 ; while (i<10) ++i ; sum+=i ;
学习内容:
1、循环控制概述 2、goto语句和goto循环 3、while循环
4、do-while循环 5、for循环
6、循环的嵌套 7、几种循环结构的比较
8、辅助控制语句 9、循环结构程序设计举例
学习目标:
1、熟练掌握while、do-while和for语句及三种循环之间 的嵌套和区别。
重难点:
例:从键盘输入正整数n求n!
#include<stdio.h> main( ) { unsigned n,i; long factorial=1; scanf(“%u”,&n); for(i=1;i<=n;++i) factorial=factorial*i; printf( “%u!=%ld”,n, factorial); }
1.循环体含一个以上语句时,必须以复合语句的形式出现; 当循环体为空时不要掉了分号(;)。 2.注意循环控制变量的初值及其修改,以保证循环正常 执行和正常结束。 3.可以在循环体中安排使表达式变为”0”的语句,也可以 通过表达式本身实现这种控制功能。 for( i=1; i<=n; i++) if(! ( i%2 ) ) sum = sum + i; for( i=1; i<=n; ) { if( ! ( i%2 ) ) sum = sum + i; i++ ; }
#include <stdio.h> void main( ) { int i=1; unsigned n,sum=0; scanf(“%u”,&n); do { sum+=i ; i++; } while(i<=n); printf(“1—%d\’sum=%u",n,sum); }
例:从键盘输入正整数n,求n! #include <stdio.h> main( ) { unsigned n,i=1; long factorial=1; scanf(“%u”,&n); do { factorial=factorial*i; i++; } while( i<=n ); printf( “%u!=%ld”,n, factorial ); }
scanf(“%f”,&Weight); total=total+ Weight; scanf(“%f”,&Weight); total=total+ Weight;
/*第3个儿童的体重*/ /*前3个儿童的总体重*/ /*第4个儿童的体重*/ /*前4个儿童的总体重*/
scanf(“%f”,&Weight); total=total+ Weight; scanf(“%f”,&Weight); total=total+ Weight;
for (i=1,sum=0; i<=100; i++) sum=sum+i ;
表达式1 表达式2
0来自百度文库
非0
循环体 表达式3
for循环控制流程图
三、执行过程:
1.求解表达式1; 2.求解表达式2,若为非0则执行第3步;否则执行第5步;
3.执行循环体;
4.求解表达式3,然后返回第2步; 5.结束循环,执行for语句的下一语句。
4、do-while语句的功能:
执行循环体,直到表达式为0。
注意事项:
1.do-while 语句的特征是“先执行,后判断”;循环体最 少执行一次。
2.对于同一个问题, 既可以用 while语句 ,也可以用 do-while语句处理。 3.特别要注意while后加分号 ; 4.while和do-while循环的比较: unsigned n, i=1,sum=0; scanf(“%u”,&n); while(i<=n) { sum+=i ; i++; }
1、 while语句、do-while语句和for语句及三种循环之间 嵌套和区别。
引例:给出N个儿童的体重,要求计算平均体重 #define N 10 #include “stdio.h” main( ) { /*定义变量存放某儿童体重、总体重和 平均体重*/ float Weight, total=0, aver; *输入N个儿童的体重并计算总体重*/ scanf(“%f”,&Weight); total=total+ Weight; scanf(“%f”,&Weight); total=total+ Weight; /*第1个儿童的体重*/ /*前1个儿童的总体重*/ /*第2个儿童的体重*/ /*前2个儿童的总体重*/
#include <stdio.h> void main( ) { int n,i,sum=0; scanf(“%u”,&n); i=1; while(i<=n) { sum+=i ; i++; } printf(“1—%u sum=%d",n,sum); }
例:从键盘输入正整数n,求n! #include <stdio.h> main( ) { unsigned n,i=1; long factorial=1; scanf(“%u”,&n); while( i<=n ) { factorial=factorial*I; i++; } printf( “%u!=%ld”,n, factorial ); }
程序段2: sum=i=0; while(i<10) { ++i; sum+=i; } 想一想执行程序段1和程序段2后 i、sum的值?
3.在循环体中应有使循环趋于结束的语句。
i=1; sum=0; while(i<10) { sum+=i; ++i; }
考虑以下while循环的执行情况: i=1; sum=0; while(i<10) sum+=i;
4.应避免无限循环、永不执行的循环、执行次数不正确 的循环等情况.
5.对于嵌套的循环语句,应写成缩进对齐格式,以增加 程序结构的清晰感和美感.
当一个循环体内又包含另一个完整的循环结构时,就称 为循环的嵌套
while(条件1) { … while(条件2) { … } … }
do { … do { … } while(条件2); … } while(条件1);
四、for语句的功能:
当表达式2为非0时重复执行循环体。
例:求1—100之内偶数和。 main( ) { int i , sum=0; for( i=1; i<100;i++ ) if( i%2==0 )sum+=i; printf(“1--100之内偶数=%d”,sum); }
五、使用for语句的注意事项:
一、do-while语句的语法格式:
do 循环体 while( 表达式 );
循环体语句

表达式

do-while循环控制流程图
二、执行过程:
1.执行循环体; 2.求解while后圆括号内的表达式,若为非0则返回第1步;否 则执行第3步;
3.结束循环,执行do-while语句的下一语句。
例6-4:从键盘输入正整数n,求 1+2+3+...+n。
for( i=1 ; i<=100 ; { sum+=i ; i++ ; } )
2.表达式2可以是任何类型,其值理解为逻辑量;
3.若表达式2从一开始就为0,那么循环体一次也不执行;
4.表达式1可以包含除给循环变量赋初值之外的其他操作; for(i=1,sum=0;i<=n; i++) sum+=i; 5.表达式3可以做属于循环体的操作;
1.任意表达式都可省略,但表达式后的分号必须保留:
省略“表达式1”时,应在for语句之前给循环变量赋初值;
i=1 ; for( ; i<=100 ; i++) sum+=i ;
省略“表达式2”时,编译系统默认表达式2为非0; for( i=1 ; ; i++) sum+=i ;
省略“表达式3”时,应在循环体中修改循环控制变量,以 保证循环正常结束.
aver=total/N; /*10个儿童的平均体重*/
printf(“%d个儿童的平均体重是:%.2\n”,N,aver); }
循环结构是结构化程序设计的基本结构之一。 C语言中的循环结构可以用以下语句实现: 1. while 循环
2. do-while 循环
3. for 循环
一、while语句的语法格式:
scanf(“%f”,&Weight); total=total+ Weight;
/*第5个儿童的体重*/ /*前5个儿童的总体重*/ /*第6个儿童的体重*/ /*前6个儿童的总体重*/
/*第7个儿童的体重*/ /*前7个儿童的总体重*/
scanf(“%f”,&Weight); total=total+ Weight; scanf(“%f”,&Weight); total=total+ Weight; scanf(“%f”,&Weight); total=total+ Weight; aver=total/N;
for(i=1,sum=0;i<=n; sum+=i++) ;
6.逗号表达式的最主要的用处: 让程序员使用多个初始化表达式和多个值递增表达式, 这在for语句中表现为表达式1和表达式3都是逗号表达式。 for(i=1,j=100,sum=0;i<j;i++,j--) sum+=i+j;
六、循环语句的使用要点:
for(表达式1;表达式2;表达式3) { … for(表达式1;表达式2;表达式3) { … } … } while(条件1) { … do { … } while(条件2); … }
while(条件) { … for(表达式1;表达式2;表达式3) { … } … } do { … while(条件2) { … } … } while(条件1);
unsigned n,i=1,sum=0; scanf(“%u”,&n); do { sum+=i ; i++; } while(i<=n);
一、for语句的语法格式:
for(表达式1;表达式2;表达式3) 循环体
二、说明:
1.表达式1和表达式3是算式表达式,表达式2是条件; 2.循环体由语句构成,以实现某种功能。
例:从键盘输入正整数n,求 1+2+3+...+n。
#include <stdio.h> void main( ) { int i; unsigned n,sum=0; scanf(“%u”,&n); for(i=1;i<=n;i++) sum+=i ; printf(“1—%u sum=%d",n,sum); }
do { … for(表达式1;表达式2;表达式3) { … } … } while(条件); for(表达式1;表达式2;表达式3) { … while(条件) { … } … }
for(表达式1;表达式2;表达式3) { … do { … } while(条件); … }
while(表达式) 循环体
表达式 非0
0
循环体
while循环控制流程图
二、执行过程:
1.计算while后圆括号内表达式的值,为非0则执行第② 步,否则执行第③步; 2.执行循环体,然后返回第①步;
3.结束循环,执行while语句的下一语句。
例6-2:从键盘输入正整数n,求 1+2+3+...+n。
/*第8个儿童的体重*/ /*前8个儿童的总体重*/ /*第9个儿童的体重*/ /*前9个儿童的总体重*/ /*第10个儿童的体重*/ /*10个儿童的总体重*/ /*10个儿童的平均体重*/
printf(“%d个儿童的平均体重是:%.2\n”,N,aver);
}
#define N 10 #include “stdio.h” main( ) { /*定义变量存放某儿童体重、总体重和平均体重*/ int i; float Weight, total=0, aver; *输入N个儿童的体重并计算总体重*/ for(i=1;i<=N;i++) { scanf(“%f”,&Weight); /*第i个儿童的体重*/ total=total+ Weight; /*i个儿童的总体重*/ }
相关文档
最新文档