第5章循环结构程序设计PPT教学课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如:i=1;
while( i<=10)
{ sum=sum*i; 等效于
i++; }
for( i=1;i<=10;i++ ) sum=sum*i;
总结
⑴三种循环语句共同的特点是:当循环控制条件非 零时,执行循环体语句,否则终止循环。
⑵循环语句可以是:简单语句、复合语句、空语句。
⑶在循环体内或循环条件中必须有使循环趋于结束的 语句。
⑵要写出一个正确的循环结构,要做三方面工作:
①初始化; ②正确的循环条件; ③更新
5.2 do-while 语句
一般形式: do 语句
while(表达式);
Biblioteka Baidu
分号不能少
执行过程:
⑴执行循环体中的语句; ⑵计算表达式,测试循环条件 为真(非0)则重复上面步骤, 为假(0)结束循环。
例:将上面计算10!并输出结果(用do-while)
根据需要可以省略。
表达式1:用于进入循环体之前给某些变量赋初值。 若省略,可在for语句前给变量赋初值。
#include<stdio.h> main() {
int i=1; sum=1; for( ; i<=10; i++) sum=sum*i; printf(“10!=%d\n”,sum); }
表达式2:决定循环的条件,若省略,则为无限循环。
5.4 循环的嵌套
例:在屏幕上打印一个8行7列的星号矩阵。
#include <stdio.h> main() {
int i; for( i=0; i<7; i++ ) printf("*"); printf("\n"); for( i=0; i<7; i++ ) printf("*"); printf("\n"); …… for( i=0; i<7; i++ ) printf(“*”); }
⑷三种循环可以处理同一问题,一般可互相代替。
但在实际应用中,选用的一般原则如下:
•如果循环次数在执行循环体之前就已确定,一般用for语句;
如果循环次数是根据循环体的执行情况确定的,一般用while 语句或者do-while语句。
•当循环体至少执行一次时,用do-while语句; •如果循环体可能一次也不执行时,用while语句。
while与do-while的主要区别:
while语句进入循环体之前,测试循环条 件,表达式必须为真,否则while循环不进入循 环体,即循环体可能一次也不执行。
而do-while语句不管开始的时候测试循 环条件是真是假,循环体都要执行一次。
5.3 for语 句
不能省略
一般形式:
for(表达式1 ;表达式2 ;表达式3)
比较:
#include<stdio.h> main(){
int i; sum=1; scanf(“%d”,&i); while (i<=10) {
sum=sum*i; i++; } printf(“%d”,sum); }
#include<stdio.h> main(){
int i; sum=1; scanf(“%d”,&i); do {
⑵ for语句功能很强,表达式1和表达式3可以是逗号表达 式,一般不把与循环无关的东西放到for语句中
for语句最简单、常用的形式如下:
for(循环变量赋初值;循环条件;循环变量增值)语句
如: int sum=1; for(i=1 ; i<=10 ; i++) sum=sum*i;
⑶ for 语句最为灵活,它完全可以代替的while语句。
第5章 循环结构程序设计
循环结构的特点是:
程序的流程是在给定条件下,反复执行某个程序 段,直到条件不成立为止。
C语言中可以用以下语句来实现循环: ➢用while语句; ➢用do_while语句; ➢用for语句。
5.1 while 语句
一般形式: while (表达式) 语句
执行过程:
⑴ 先计算表达式的值 ; ⑵若表达式的值为真(非0)时执 行循环体中的语句,然后重复上 面步骤 若表达式的值为假(0) ,则结束 循环
(可以是逗号表达式)
⑸ 转向⑵。
例:将上面计算10!的程序用 for语句写出:
#include<stdio.h> main() {
int i; sum=1; for(i=1; i<=10; i++)
sum=sum*i; printf(“%d”,sum); }
说明:
⑴ for 循环的三个表达式起着不同的作用,
sum=sum*i; i++; }while (i<=10); printf(“%d”,sum); }
输入:9↙ 输入:11↙ 输入:9↙ 输入:11↙
输出:90 输出:1
输出:90 输出:11
比较上面两个程序,虽然结构是相同的,在 输入值为有效值时结果相同,但当输入无效值时 输出结果是不同的。为什么?
#include<stdio.h> main(){
int i=1; int sum=1; while (i<=10) {
sum=sum*i; i++; } printf(“%d”,sum); }
#include<stdio.h> main(){
int i=1; int sum=1; do {
sum=sum*i; i++; }while (i<=10); printf(“%d”,sum); }
如: for(i=0; ;i++) 语句 for(; ;) 语句
无限循环(死循环)
表达式3:用于循环一次后对某些变量进行修改。
若省略,可在循环体内对变量进行修改。
#include<stdio.h> main( ){
int i; sum=1; for(i=1 ; i<=10 ; ) { sum=sum*i; i++; } printf(“10!=%d\n”,sum); }
语句
表达式1:一组初始化表达式。 表达式2:循环控制条件。 表达式3:在执行完循环体语句之后执行的表达式。
要正确表达循环结构应注意三方面的问题:
控制变量的初始化,循环的条件和控制变量的更新。
执行过程:
⑴ 求出表达式1的值
(可以是逗号表达式);
⑵ 对“表达式2”进行判断, 为假退出循环,否则转⑶; ⑶执行循环体中语句; ⑷执行“表达式3”
例:计算10!并输出结果(用while语句)
#include<stdio.h> main( ) {
int i=1; int sum=1; while (i<=10) {
sum=sum*i; i++; } printf(“%d”,sum); }
注意:
⑴循环条件中的表达式一般是逻辑表达式和关系表 达式,也可以是算术表达式(非0为真,0为假)。