C语言程序设计(第五章)PPT教学课件

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4
例 从键盘输入一组数据,以0结束输入,求数据和
/*ch5_11.c*/
#include <stdio.h>
main()
{
int number,sum=0;
read_loop: scanf("%d",&number);
if(!number) goto print_sum;
sum+=number;
goto read_loop;
第五章
循环结构程序设计
2020/12/11
1
概述
C语言可实现循环的语句:
▪ 用goto 和 if 构成循环 ▪ while 语句 ▪ do ~ while 语句 ▪ for 语句
2020/12/11
2
goto语句及用goto构成循环
goto语句一般格式:
goto 语句标号; ….….. 标号:语句;
for(循环变量赋初值;循环条件;循环变量增值)
{ 循环体语句;
}
❖例说用明fof:ro语r循句环中求expr110,0 exnpr2 ,expr3 类型任意,都可省略,但分 号;不可省 n 1
#incl无ud限e 循<s环td:iof.ohr>(;;) mainf(o)r语句可以转换成while结构 { int i,sum=0;
例:#include<stdio.h> main( ) { int i=0;
for(;i<10;putchar(‘a’+i),i++)
;
}
15
main() { int i,j,k;
for(i=0,j=100;i<=j;i++,j--) { k=i+j;
❖一般形式:
❖执行流程:
do 循环体语句;
while(表达式);
do
循环体
真(非0)
while expr
假(0)
2020/12/11
9
❖特点:先执行循环体,后判断表达式 ❖说明:
至少执行一次循环体 do~while可转化成while结构
循环体
假(0) expr
真(非0) 循环体
While循环
2020/12/11
i++; } printf("%d",sum); }
2020/12/11
12
for语句
❖一般形式:
for([expr1] ;[ expr2] ;[ expr3]) 循环体语句;
❖执行流程:
for
expr1 假(0)
expr2 真(非0)
循环体
expr3
2020/12/11
13
❖for语句一般应用形式:
❖功能:无条件转移语句 ❖说明:
不能用整数作标号 只能出现在goto所在函数内,且唯一 只能加在可执行语句前面 限制使用goto语句
2020/12/11
3
100
例 用if 和goto语句构成循环,求
n
n 1
/*ch5_1.c*/
#include <stdio.h>
main()
ห้องสมุดไป่ตู้
{ int i,sum=0;
{ int i,sum=0;
循环初值
i=1;
while(i<=100)
{ sum=sum+i;
循环变量增值
i++;
循环终值
}
2020/12/11
printf("%d",sum); }
循环体
7
例 显示1~10的平方
/*ch5_21.c*/ #include <stdio.h> main() { int i=1;
while(i<=10) { printf("%d*%d=%d\n",i,i,i*i);
i++; } }
运行结果: 1*1=1 2*2=4 3*3=9 4*4=16 5*5=25 6*6=36 7*7=49 8*8=64 9*9=81 10*10=100
2020/12/11
8
•do~while语句
运行结果:abcdefghij
例:#include<stdio.h> main( ) { int i=0; for(;i<10;) putchar(‘a’+(i++)); }
2020/12/11
例:#include<stdio.h> main( ) { int i=0; for(;i<10;i++) putchar(‘a’+i); }
print_sum: printf("The total sum is %d\n",sum);
}
2020/12/11
5
•while语句
❖一般形式:
while(表达式) 循环体语句;
❖执行流程:
while 假(0)
expr 真(非0)
循环体
2020/12/11
❖特点:先判断表达式,后执行循环体 ❖说明:
for(i=1;i<=100;i++) sum+=i;
printf("%d",sum); }
expr1; while(expr2) {
循环体语句;
expr3;
2020/12/11
}
14
例:#include<stdio.h> main( ) { int i=0; for(i=0;i<10;i++) putchar(‘a’+i); }
循环初值
i=1;
loop: if(i<=100)
{ sum+=i;
循环变量增值
i++;
goto loop;
}
printf("%d",sum);
}
2020/12/11
循环条件 sum=0+1 sum==1+2=3 sum=3+3=6 sum=6+4 …… sum=4950+100=5050 循环终值
循环体
/*ch5_4.c*/ #include <stdio.h> main() { int i,sum=0;
scanf("%d",&i); do { sum+=i;
i++; }while(i<=10); printf("%d",sum); }
main() { int i,sum=0;
scanf("%d",&i); while(i<=10) { sum+=i;
循环体有可能一次也不执行 循环体可为任意类型语句 下列情况,退出while循环
条件表达式不成立(为零) 循环体内遇 break,return,goto 无限循环: while(1)
循环体;
6
100
例 用while循环求
n
n 1
/*ch5_2.c*/
#include <stdio.h>
循环条件
main()
10
100
例 用do~while循环求 n n 1
/*ch5_3.c*/ #include <stdio.h> main() { int i,sum=0;
i=1; do { sum+=i;
i++; }while(i<=100); printf("%d",sum); }
2020/12/11
11
例 while和do~while比较
相关文档
最新文档