第5章 控制结构-循环控制
合集下载
C语言 第五章-循环结构程序设计

执行过程如图所示。其中i为外循环的控制变 量,j为内循环的控制变量。
i =0 当 i <=10
j=0 当 j<=10
printf(“%d ”, i*j ) j++ i++
例4 编程打印“九九乘法表”。
分析:九九乘法表 1×1=1 1×2=2 1×3=3 … 2×1=2 2×2=4 2×3=6 … 3×1=3 3×2=6 3×3=9 … …… 9×1=9 9×2=18 9×3=27 …
i ++ ; } while ( i <= 100 ) ; printf ( " %d " , sum ) ; }
结果相同
同样是下列程序,但如果while后面的表达式结果一开始就是 假时,两种循环结果会不一样。
main ( ) /*程序1*/
{ int i , sum = 0 ; i = 101 ;
所以程序需要设计成二重循环。由于题目只 要求找到一组解,所以在循环过程中只要找到一组 满足条件的x, y, z就可以跳出循环。
跳出循环的方法可以采用break语句,但是, 因为是二重循环,所以要考虑使用break是否方便。
程序 百钱买百鸡问题。 void main ( ) { int x , y , z ;
打印第2行 ( i = 2 ) for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
…… 打印第9行 ( i = 9 )
for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
高树芳C语言程序设计--第五章

VC程序代码
21
5.4
for循环结构
相关知识:
求解表达式1
1.for语句 见执行过程图。 2. for语句的说明 三个表达式均可省略, 但两个分号不可省略。
假 计算表达式2 真 循环体语句
求解表达式3
for语句的后续语句
22
5.2
while(当型)循环结构
[课堂训练5-4] 用for循环编程实现倒计时效果。即在屏幕上 固定位置显示10,然后清除之,再显示9,之后 是8……,至到1。
是成绩非-1等。
10
5.2
while(当型)循环结构
相关知识:
1.while语句的一般形式 2.while语句的说明 3.循环结构的构造方法 4.if语句与循环语句的区别
11
5.2
while(当型)循环结构
[课堂训练5-2] 计算s=1+1/2+1/3+1/4+„„+1/n,直到s大于或等 于3为止,输出n的值。 提示: 这是“标志”型循环。设置实型变量s并设初值为 0.0,设置整型变量i并设初值为1,循环条件是 s<=3,重复内容是s=s+1.0/i,注意要使用1.0实型 常量,或者将1或i作强制类型转换,将其转换为 实数,否则运算结果为0。
20
5.4 for循环结构 案例5-6 跳动的“O”
[案例任务]
编程实现字符“O”从屏幕的左端移动到右端。每一 秒种移动一下,形成跳动的效果。运算结果大致如 下。
[解决方案]首先显示一个O,延时片刻,然后光标
后退(用转义字符),再显示一个空格和一个O。循 环以上功能直到光标到屏幕最右端。
WIN-TC程序代码
[解决方案]该循环至少执行1次,使用do„while
第5章 习题与思考题和答案

C.A=C : C=B : B=AD.A=(A+B)/2 : B=(A – B)/2
4.下段程序执行的输出结果是。
S=0:T=0:U=0
For i=1 To 3
For j=1 To i
For K=j To 3
S=S+1
Next K
T=T+1
Next j
U=U+1
Next i
Print S;T;U
A.3 6 14B.14 63C.14 3 6D.16 4 3
Next j
If j>Int (Sqr(n-m))ThenPrint n,m,n-m
EndIf
Next m
Next n
EndSub
六
(1)编程序计算:1!+3!+5!+….+11!
(2)输入两个正整数m和n,求其最大公约数a和最小公倍数b,计算最大公约数a的方法如下:先算出m/n余数r,若r等于0,则n为最大公约数;若r不为0,则把原来的n值作为新的m值,把原来的r值作为新的n值,继续运算。这样辗转相除,直到r为0,此时的n值为最大公约数a,最小公倍数则可用原始m与n值的积除以最大公约数求得。
Private Sub Form_click()
Dim k,a,b as integer
a=20
b=2
k=2
Do While k<=a
b=b*2
k=k+5
Loop
Print b
End Sub
5.写出以下程序在单击命令按钮后的输出结果。
Private Sub Form_click()
k=0
fori=1 to 5
If n <= 0 Or m <= 0 Then
4.下段程序执行的输出结果是。
S=0:T=0:U=0
For i=1 To 3
For j=1 To i
For K=j To 3
S=S+1
Next K
T=T+1
Next j
U=U+1
Next i
Print S;T;U
A.3 6 14B.14 63C.14 3 6D.16 4 3
Next j
If j>Int (Sqr(n-m))ThenPrint n,m,n-m
EndIf
Next m
Next n
EndSub
六
(1)编程序计算:1!+3!+5!+….+11!
(2)输入两个正整数m和n,求其最大公约数a和最小公倍数b,计算最大公约数a的方法如下:先算出m/n余数r,若r等于0,则n为最大公约数;若r不为0,则把原来的n值作为新的m值,把原来的r值作为新的n值,继续运算。这样辗转相除,直到r为0,此时的n值为最大公约数a,最小公倍数则可用原始m与n值的积除以最大公约数求得。
Private Sub Form_click()
Dim k,a,b as integer
a=20
b=2
k=2
Do While k<=a
b=b*2
k=k+5
Loop
Print b
End Sub
5.写出以下程序在单击命令按钮后的输出结果。
Private Sub Form_click()
k=0
fori=1 to 5
If n <= 0 Or m <= 0 Then
《循环控制》课件

结束条件
当满足退出条件时,循环终止 ,程序继续执行后续任务或流 程。
03 循环控制的实现 方式
使用for循环实现循环控制
总结词
for循环是一种常见的循环控制结 构,适用于已知循环次数的情况 。
详细描述
在for循环中,通常会指定一个计 数器变量,并设置其初值、条件 和增量。当条件满足时,循环体 将会被执行指定的次数。
使用while循环实现循环控制
• i;
使用while循环实现循环控制
}
```
使用do-while循环实现循环控制
总结词
do-while循环与while循环类似,但至少会执行一次循环体,然后再检查条件 。
详细描述
在do-while循环中,无论条件是否满足,循环体至少会被执行一次。然后,根 据条件的真假来决定是否继续执行循环体。
05 循环控制的实例 应用
在数据排序中的应用
冒泡排序
通过多次遍历列表,比较相邻元素并 交换位置,使得较大的元素逐渐向列 表的末尾“冒泡”,最终实现列表的 排序。
选择排序
插入排序
将待排序的元素插入到已排序的子列 表中,使得子列表保持有序,直到所 有元素都插入完毕。
每次遍历列表,找到最小(或最大) 的元素,将其与当前位置的元素交换 ,直到整个列表排序完成。
动画播放
通过循环控制,可以按照一定的时间间隔播放游戏角色的动画,以 实现连续的动作效果。
游戏循环
游戏的主循环也是通过循环控制来实现的,它负责不断更新游戏状 态、渲染游戏画面和处理用户输入。
THANKS
感谢观看
提高代码效率
通过重复执行某段代码, 可以减少重复编写相同代 码的工作量。
处理重复性任务
第5章 程序的基本控制结构

算术表达式 switch (表达式) 相当于语句标号 { case 常量表达式1 : 语句1 [break ;] case 常量表达式2 : 语句2 [break ;] …… case 常量表达式n : 语句n [break ;] [default : 语句n+1 break; ] } 没有分号
程序设计基础
程序设计基础
5.2 选择结构
14 char Grade(double score) 15 { 16 char grade ; 17 int temp ; 18 temp = (int)score / 10 ; //执行整除前进行强制类型转换 19 switch (temp) 20 { 21 case 10 : //case 10和case 9共用一个程序段 22 case 9 : grade = 'A' ; break ; 23 case 8 : grade = 'B' ; break ; 24 case 7 : grade = 'C' ; break ; 25 case 6 : grade = 'D' ; break ; 26 default : grade = 'E' ; break ; 27 } 28 retur循环结构
当型循环结构
当型循环结构由while语句实现,因此,也称while循环。 【语法】while语句的一般形式如下:
循环条件
必须有括号 while (表达式) 语句 循环体
【语义】
表达式 T
语句
F
程序设计基础
5.3 循环结构
当型循环结构
例5.7 计算n!。
解:n! = n×n-1×……×2×1,设变量result保存计算结果,首先将变量 result初始化为1,然后将result乘以1、乘以2、……,乘以n,显然需要设 置变量i表示重复执行的乘法次数。 14 15 16 17 18 19 20 21 22 23 24 long int Fac(int n) { int i = 1 ; long int result = 1 ; while (i <= n) { result = result * i ; i ++ ; } return result ; }
程序设计基础
程序设计基础
5.2 选择结构
14 char Grade(double score) 15 { 16 char grade ; 17 int temp ; 18 temp = (int)score / 10 ; //执行整除前进行强制类型转换 19 switch (temp) 20 { 21 case 10 : //case 10和case 9共用一个程序段 22 case 9 : grade = 'A' ; break ; 23 case 8 : grade = 'B' ; break ; 24 case 7 : grade = 'C' ; break ; 25 case 6 : grade = 'D' ; break ; 26 default : grade = 'E' ; break ; 27 } 28 retur循环结构
当型循环结构
当型循环结构由while语句实现,因此,也称while循环。 【语法】while语句的一般形式如下:
循环条件
必须有括号 while (表达式) 语句 循环体
【语义】
表达式 T
语句
F
程序设计基础
5.3 循环结构
当型循环结构
例5.7 计算n!。
解:n! = n×n-1×……×2×1,设变量result保存计算结果,首先将变量 result初始化为1,然后将result乘以1、乘以2、……,乘以n,显然需要设 置变量i表示重复执行的乘法次数。 14 15 16 17 18 19 20 21 22 23 24 long int Fac(int n) { int i = 1 ; long int result = 1 ; while (i <= n) { result = result * i ; i ++ ; } return result ; }
第5章-循环结构程序设计PPT优秀课件

17
5.3.1 前测型Do…Loop循环语句
格式:
Do [While | Until <条件表达式>] <语句块> [Exit Do] <语句块>
Loop
18
5.3.1 前测型Do…Loop循环语句
前测型Do…Loop循环的流程图
Do While…Loop流程图
Do Until…Loop流程图
条件表达式 值为真?
格式:
Do <语句块> [Exit Do] <语句块>
Loop [While | Until <条件表达式>]
23
5.3.1 后测型Do…Loop循环语句
说明:
后测型Do…Loop循环语句与前测型Do…Loop循环语句的主 要区别在于:
后测型要先执行一次循环体,再判断条件;而前测型要 先判断条件,然后根据判断结果决定是否执行循环体。因此 对于后测型,不管条件是否满足,循环体至少有一次执行机 会。
16
5.3 Do…Loop循环语句
导入:
Do…Loop循环也属于条件型循环,即根据条件的 成立与否来决定是否执行循环。Do…Loop循环的应 用具有很强的灵活性,主要体现在:它既能指定循环 开始条件,又能指定循环结束条件;既能构成前测型 Do…Loop循环语句,又能构成后测型Do…Loop循 环语句。
25
5.3.1 后测型Do…Loop循环语句 【例5-10】将400~600间能够被3整除的数 输出(上机练习)
【例5-11】(略)
26
5.4 循环嵌套
介绍:
一个循环结构中又包含一个或多个循环结构被称为 循环嵌套,或称多重循环。 多重循环对嵌套的层数没有限制。有几层嵌套,就 称为几重循环,如二重循环、三重循环、四重循环 等。一般地,把嵌套在一个循环体内部的另一个循 环结构称为内循环;这样,嵌套了其他内循环部分 的循环结构就称为外循环。 为了使多重循环结构具有较好的可读性,通常用缩 进方式书写相应的源代码。
5.3.1 前测型Do…Loop循环语句
格式:
Do [While | Until <条件表达式>] <语句块> [Exit Do] <语句块>
Loop
18
5.3.1 前测型Do…Loop循环语句
前测型Do…Loop循环的流程图
Do While…Loop流程图
Do Until…Loop流程图
条件表达式 值为真?
格式:
Do <语句块> [Exit Do] <语句块>
Loop [While | Until <条件表达式>]
23
5.3.1 后测型Do…Loop循环语句
说明:
后测型Do…Loop循环语句与前测型Do…Loop循环语句的主 要区别在于:
后测型要先执行一次循环体,再判断条件;而前测型要 先判断条件,然后根据判断结果决定是否执行循环体。因此 对于后测型,不管条件是否满足,循环体至少有一次执行机 会。
16
5.3 Do…Loop循环语句
导入:
Do…Loop循环也属于条件型循环,即根据条件的 成立与否来决定是否执行循环。Do…Loop循环的应 用具有很强的灵活性,主要体现在:它既能指定循环 开始条件,又能指定循环结束条件;既能构成前测型 Do…Loop循环语句,又能构成后测型Do…Loop循 环语句。
25
5.3.1 后测型Do…Loop循环语句 【例5-10】将400~600间能够被3整除的数 输出(上机练习)
【例5-11】(略)
26
5.4 循环嵌套
介绍:
一个循环结构中又包含一个或多个循环结构被称为 循环嵌套,或称多重循环。 多重循环对嵌套的层数没有限制。有几层嵌套,就 称为几重循环,如二重循环、三重循环、四重循环 等。一般地,把嵌套在一个循环体内部的另一个循 环结构称为内循环;这样,嵌套了其他内循环部分 的循环结构就称为外循环。 为了使多重循环结构具有较好的可读性,通常用缩 进方式书写相应的源代码。
Python语言程序设计第五章循环结构程序设计

14
第5章
循环结构程序设计
5.2 for语句 结构
1. for语句一般形式: for 目标变量 in 序列对象: 循环体语句 说明:
for语句的首行定义了目标变量和遍历的序 列对象,后面是需要重复执行的语句块。语 句块中的语句要向右缩进,且缩进量要一致。
15
第5章
循环结构程序设计
注意:
(1)for语句是通过遍历任意序列的元素来建立 循环的。 (2)for 语句也支持一个可选的else块,一般格 式如下: for 目标变量 in序列对象: 语句块 else: 语句
5
第5章
循环结构程序设计
在while语句中使用else子句
while exp: 循环体 else: 语句
Python可以在循环语句中使用else子句,即构 成了while.......else循环结构。
6
第5章
循环结构程序设计
例 :求
100
n 1
n
开始 sum,n=0,1 n<=100
1)问题分析:
29
第5章
循环结构程序设计
5.4 循环控制语句
有时候我们需要在循环体中提前跳 出循环,或者在某种条件满足时,不执行 循环体中的某些语句而立即从头开始新的 一轮循环,这时就要用到循环控制语句 break、continue和pass语句。
30
第5章
循环结构程序设计
(1) break语句
一般格式 break 功能
371printdddijk40728python语言程序设计第5章循环结构程序设计第5章循环结构程序设计循环结构程序设计51while语句当型循环52for语句结构53循环的嵌套54循环控制语句55循环结构程序举例2第5章循环结构程序设计循环结构的基本类型exptaf
第5章 基本的控制结构(循环)

结束
图5-7
“九九乘法表”运行结果
结束
循环嵌套要注意以下事项: (1)在多重循环中,各层循环的循环控制变 量不能同名。但并列循环的循环控制变量名
可以相同,也可以不同。
(2)外循环必须完全包含内循环,不能交叉。
结束
下面的循环代码正确吗? For I=1 To 100 For I=1 To 100 For J=1 To 10 For I=1 To 10 „„ „„
结束
5.3.5 循环的退出
在某些情况下,为了减少循环次数或便 于程序调试,可能需要提前强制退出循 环。VB为For„Next和Do„Loop循环语句 提供了相应的强制退出循环的语句。
结束
Exit For语句:
用于For„Next循环,在循环体中可以出 现一次或多次。当系统执行到该语句时, 就强制退出当前循环。
结束
格式1的两种形式: Do {while} <条件> [<循环体>] Loop Do
当条件为真时, 执行循环体语句
{until} <条件> 当条件为真时,终 [<循环体>] 止执行循环体语句 Loop 说明: 格式1是先判断条件是否为真,然后执行。
结束
F
条件是否为真?
T
条件是否为真?
T
循环体
F
循环体
图2-3
Do While „Loop执行流程
图2-4
Do
Until „Loop执行流程
结束
格式2的两种形式: Do [<循环体>] Loop {while} <条件> Do
[<循环体>] Loop {until} <条件> 说明: 格式2是先执行循环体语句,然后判断条件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
26
练习
为什么使用for循环2-1 .p83-86
回顾问题1:令狐冲说一百遍“我最棒” 回顾问题2:根据人数和成绩,计算平均成绩
共同点:确定的循环次数 更优解决 : for 循环结构 解决: 使用 while 循环
27
为什么使用for循环2-2 . p83-86
while循环结构 for循环结构
10000米赛跑
锲而不舍地学习
旋转的车轮
循环结构的特点
循环结构 循环条件 循环操作
根据条件重复的做 相同或相似的事情
5
while循环(当型循环).p77-80
符合条件,循环继续执 行;否则,循环退出
while ( 循环条件 ) {
循环操作 } 循环中被重复 执行的操作
int i = 1; while ( i <= 30 ) {
初始情况不满足循环条件时
while循环一次都不会执行 do-while循环不管任何情况都至少执行一次
24
比较while和do-while
[注]通常情况while,do—while可互换,但以下情况例外
#include ―stdio.h‖ int main() { n=101; while(n<100) { printf(―n=%d\n‖,n); } return 0; }
使用while循环的步骤
1、分析循环条件和循环操作 2、套用while语法写出代码 3、检查循环是否能够退出
7
怎样使用while循环3-2 .p77-80
比较两个char类型的 值是否相等 char answer; printf("表演得怎么样 ?(y/n):"); answer=getchar(); 循环条件 while (answer!='y') { printf("早上5点开始练声 !\n"); printf("上午练习钢琴 !\n"); printf("下午到声乐老师家练习唱歌 !\n"); printf("晚上练习舞蹈基本功!\n"); printf("表演得怎样 ?(y/n):"); getchar(); answer=getchar(); } printf("圆满完成 !\n");
个表达式,运算顺序从左到右
for(i = 0, j = val; i<=val; i++, j-- ){ printf( “%d + %d=%d “,i,j,i+j); }
循环操作
8
求自然数1到100的和.p77-80
解:1.分析问题
step1: 设两个加数变量 int sum=0,i=1; sum=0,i=1; 0 重复做p2: 当 i<=100 时 1 + 2 3 while(i<=100) 1 2 = { 3 + 3 3 = 6 重复 (循环)做sum+i 6 sum=sum+i; 6 + 4 4 = 10 10+… 其中 sum=前一个sum+i …=最终结果 i=i+1; 10 i =前一个i+1; } step3:第二个加数有规律 输出循环后的结果 :1,2,3 … printf(―和 =%d‖,sum);
do { while循环先判断,再执行 不适合描述此故事 循环操作 }while ( 循环条件 );
18
什么是do-while循环. p80-83
do { 先执行一遍循环操作
循环操作
循环操作
真
} while ( 循环条件 ); 符合条件,循环继续执行; 否则,循环退出
循环条件 假
特点:先执行,再判断
第五章 控制结构-循环结构
目标
理解为什么使用循环结构 熟练掌握while循环的使用 熟练掌握do-while循环的使用 理解while 和 do-while 循环的区别 熟练使用for循环 理解 break 和 continue 语句的用法 熟练使用嵌套循环
2
为什么需要循环2-1
而第一个加数都是前一个运算的结果
while循环常见问题3-1 .p77-80
//打印4次“欢迎同学” void main(){ int i = 0; while (i < 4 ){ printf(“欢迎同学"); i ++ ; } }
循环一直执行,不会退 出,哪里出错了?
永远都不会退出的循环称为死循环 循环的次数原则上应该是有穷的,也就是说,循环要有出 口,否则成为死循环
int i=0; while(i<100) { printf ("我最棒"); i++;
for(int i=0;i<100;i++)
{
printf ("我最棒");
}
}
for比while更简洁
28
什么是for循环. p83-86
for循环的语法和执行顺序 1 for( 参数初始化 表达式1 3 }
/* 打印4次“欢迎同学” */ void main(){ int i = 0; while ( i < > 5 ){ printf("欢迎欢迎同学"); i ++; } } 一次都没有打 印,哪里出错 了?
注意:如果一开始条件就不满足,while循环一次都不执行
12
练习
[课堂练习]找出100以内的奇数。
25
#include ―stdio.h‖ int main() { n=101; do { printf(―n=%d\n‖,n); }while(n<100); return 0; }
25
结果分别是多少?
代码填空: 实现整数反转
#include<stdio.h> void main( ) { int val = 12345; int r_digit; printf ("反转后的整数是:"); while(_______){ while(val!=0){ _____________________; r_digit = val %10; _____________________; printf(“%d”,r_digit); _____________________; val = val /10; }} } }
17
练习
do-while循环(直到型循环).p80-83
如何用程序讲述下面的故事?
苦练半年,眼看大赛在即, 盈盈提议:彩排一次,如果很令人满意,以后就不用彩排了,否则每天都要彩排, 直到现场表现让她满意为止! 他能否用动听的歌声震撼盈盈,用美妙的钢琴声博得赞赏呢?……
while (循环条件){ 循环操作 }
19
怎样使用do-while循环. p80-83
先执行一遍循环操作
char answer; do { printf("唱歌 !\n"); printf("演奏肖邦钢琴曲 !\n"); printf("可以了吗 ?(y/n):"); answer=getchar(); } while (answer!='y' ) ; 循环条件 printf("大功告成 !\n");
B
D. 程序进入死
22
练习
输入一行字符,分别统计字母、数字、和其 它字符的个数。
23
比较while和do-while
while循环和do-while循环的区别
语法不同
先执行,再判断
while ( 循环条件 ) {
循环操作 } 先判断,再执行
do { 循环操作 } while( 循环条件 );
16
【课堂练习】华氏和摄氏温度的转换公式为C=5/9*(F32),其中C表示摄氏温度,F表示华氏温度。要求从华 氏0度到华氏300度,每隔20度输出一个华氏温度所对 应的摄氏温度值。 #include <stdio.h> int main() { float F=0,C; while( F<=300 ① ) { C=5.0/9*(F-32) ________________ ② ; printf(“4.0f\t%6.1f\n:,F,C); ③ ; F=F+20 } return 0; }
printf ("我能行!"); i ++;
}
特点:先判断,再执行
编码规范:缩进、换行
循环条件 真 循环操作
假
6
怎样使用while循环3-1.p77-80
如何用程序描述下面这个故事呢?
循环条件 为了备战,令狐冲锲而不舍地练习,盈盈严格把关… “盈盈,怎么样,可以了吗?” “不行,高音部分唱得还不是很好,钢琴还要继续练啊 !” 没有听到“很棒”的评价,看来革命尚未成功, 令狐冲并不气馁: 早上5点练声,上午练钢琴,下午到声乐老师家练习唱歌,晚上练习舞蹈基本功。 循环操作
for ( int i = 0 ; i < 100 ; i++ ) { printf ("我最棒"); } 代码规范:格式对齐、代码的缩进
29
条件为true 2 条件判断 ; 表达式 ; 2 循环操作 ; 循环体被执行
4 更新循环变量 表达式3
){
如何使用for循环. p83-86
循环录入某学生第一期的5门课成绩,计算平 均分
盈盈为了考验令狐冲夺冠的决心,要他说一百遍 “我能行!”
printf("第1次说:我能行!"); 100条 printf("第2次说:我能行!"); …… printf("第100次说:我能行!");
练习
为什么使用for循环2-1 .p83-86
回顾问题1:令狐冲说一百遍“我最棒” 回顾问题2:根据人数和成绩,计算平均成绩
共同点:确定的循环次数 更优解决 : for 循环结构 解决: 使用 while 循环
27
为什么使用for循环2-2 . p83-86
while循环结构 for循环结构
10000米赛跑
锲而不舍地学习
旋转的车轮
循环结构的特点
循环结构 循环条件 循环操作
根据条件重复的做 相同或相似的事情
5
while循环(当型循环).p77-80
符合条件,循环继续执 行;否则,循环退出
while ( 循环条件 ) {
循环操作 } 循环中被重复 执行的操作
int i = 1; while ( i <= 30 ) {
初始情况不满足循环条件时
while循环一次都不会执行 do-while循环不管任何情况都至少执行一次
24
比较while和do-while
[注]通常情况while,do—while可互换,但以下情况例外
#include ―stdio.h‖ int main() { n=101; while(n<100) { printf(―n=%d\n‖,n); } return 0; }
使用while循环的步骤
1、分析循环条件和循环操作 2、套用while语法写出代码 3、检查循环是否能够退出
7
怎样使用while循环3-2 .p77-80
比较两个char类型的 值是否相等 char answer; printf("表演得怎么样 ?(y/n):"); answer=getchar(); 循环条件 while (answer!='y') { printf("早上5点开始练声 !\n"); printf("上午练习钢琴 !\n"); printf("下午到声乐老师家练习唱歌 !\n"); printf("晚上练习舞蹈基本功!\n"); printf("表演得怎样 ?(y/n):"); getchar(); answer=getchar(); } printf("圆满完成 !\n");
个表达式,运算顺序从左到右
for(i = 0, j = val; i<=val; i++, j-- ){ printf( “%d + %d=%d “,i,j,i+j); }
循环操作
8
求自然数1到100的和.p77-80
解:1.分析问题
step1: 设两个加数变量 int sum=0,i=1; sum=0,i=1; 0 重复做p2: 当 i<=100 时 1 + 2 3 while(i<=100) 1 2 = { 3 + 3 3 = 6 重复 (循环)做sum+i 6 sum=sum+i; 6 + 4 4 = 10 10+… 其中 sum=前一个sum+i …=最终结果 i=i+1; 10 i =前一个i+1; } step3:第二个加数有规律 输出循环后的结果 :1,2,3 … printf(―和 =%d‖,sum);
do { while循环先判断,再执行 不适合描述此故事 循环操作 }while ( 循环条件 );
18
什么是do-while循环. p80-83
do { 先执行一遍循环操作
循环操作
循环操作
真
} while ( 循环条件 ); 符合条件,循环继续执行; 否则,循环退出
循环条件 假
特点:先执行,再判断
第五章 控制结构-循环结构
目标
理解为什么使用循环结构 熟练掌握while循环的使用 熟练掌握do-while循环的使用 理解while 和 do-while 循环的区别 熟练使用for循环 理解 break 和 continue 语句的用法 熟练使用嵌套循环
2
为什么需要循环2-1
而第一个加数都是前一个运算的结果
while循环常见问题3-1 .p77-80
//打印4次“欢迎同学” void main(){ int i = 0; while (i < 4 ){ printf(“欢迎同学"); i ++ ; } }
循环一直执行,不会退 出,哪里出错了?
永远都不会退出的循环称为死循环 循环的次数原则上应该是有穷的,也就是说,循环要有出 口,否则成为死循环
int i=0; while(i<100) { printf ("我最棒"); i++;
for(int i=0;i<100;i++)
{
printf ("我最棒");
}
}
for比while更简洁
28
什么是for循环. p83-86
for循环的语法和执行顺序 1 for( 参数初始化 表达式1 3 }
/* 打印4次“欢迎同学” */ void main(){ int i = 0; while ( i < > 5 ){ printf("欢迎欢迎同学"); i ++; } } 一次都没有打 印,哪里出错 了?
注意:如果一开始条件就不满足,while循环一次都不执行
12
练习
[课堂练习]找出100以内的奇数。
25
#include ―stdio.h‖ int main() { n=101; do { printf(―n=%d\n‖,n); }while(n<100); return 0; }
25
结果分别是多少?
代码填空: 实现整数反转
#include<stdio.h> void main( ) { int val = 12345; int r_digit; printf ("反转后的整数是:"); while(_______){ while(val!=0){ _____________________; r_digit = val %10; _____________________; printf(“%d”,r_digit); _____________________; val = val /10; }} } }
17
练习
do-while循环(直到型循环).p80-83
如何用程序讲述下面的故事?
苦练半年,眼看大赛在即, 盈盈提议:彩排一次,如果很令人满意,以后就不用彩排了,否则每天都要彩排, 直到现场表现让她满意为止! 他能否用动听的歌声震撼盈盈,用美妙的钢琴声博得赞赏呢?……
while (循环条件){ 循环操作 }
19
怎样使用do-while循环. p80-83
先执行一遍循环操作
char answer; do { printf("唱歌 !\n"); printf("演奏肖邦钢琴曲 !\n"); printf("可以了吗 ?(y/n):"); answer=getchar(); } while (answer!='y' ) ; 循环条件 printf("大功告成 !\n");
B
D. 程序进入死
22
练习
输入一行字符,分别统计字母、数字、和其 它字符的个数。
23
比较while和do-while
while循环和do-while循环的区别
语法不同
先执行,再判断
while ( 循环条件 ) {
循环操作 } 先判断,再执行
do { 循环操作 } while( 循环条件 );
16
【课堂练习】华氏和摄氏温度的转换公式为C=5/9*(F32),其中C表示摄氏温度,F表示华氏温度。要求从华 氏0度到华氏300度,每隔20度输出一个华氏温度所对 应的摄氏温度值。 #include <stdio.h> int main() { float F=0,C; while( F<=300 ① ) { C=5.0/9*(F-32) ________________ ② ; printf(“4.0f\t%6.1f\n:,F,C); ③ ; F=F+20 } return 0; }
printf ("我能行!"); i ++;
}
特点:先判断,再执行
编码规范:缩进、换行
循环条件 真 循环操作
假
6
怎样使用while循环3-1.p77-80
如何用程序描述下面这个故事呢?
循环条件 为了备战,令狐冲锲而不舍地练习,盈盈严格把关… “盈盈,怎么样,可以了吗?” “不行,高音部分唱得还不是很好,钢琴还要继续练啊 !” 没有听到“很棒”的评价,看来革命尚未成功, 令狐冲并不气馁: 早上5点练声,上午练钢琴,下午到声乐老师家练习唱歌,晚上练习舞蹈基本功。 循环操作
for ( int i = 0 ; i < 100 ; i++ ) { printf ("我最棒"); } 代码规范:格式对齐、代码的缩进
29
条件为true 2 条件判断 ; 表达式 ; 2 循环操作 ; 循环体被执行
4 更新循环变量 表达式3
){
如何使用for循环. p83-86
循环录入某学生第一期的5门课成绩,计算平 均分
盈盈为了考验令狐冲夺冠的决心,要他说一百遍 “我能行!”
printf("第1次说:我能行!"); 100条 printf("第2次说:我能行!"); …… printf("第100次说:我能行!");