内容正文:
第五章循环结构
1
第五章循环结构
while循环结构
while循环结构的用法
for循环结构
break语句和continue语句
循环的嵌套
do-while循环结构
典型例题
while循环结构
循环就是重复,而重复是许多问题共同的特征,因此,编程能力在某种程度上是写循环的能力。这节课我们讨论while循环结构。
3
while循环结构的一般形式
while(表达式)
语句
while循环结构执行时先对表达式求值,若值为真,则执行语句;然后重复对表达式求值,若值为真,则继续执行语句;再次对表达式求值,……,只有当表达式的值为假时,while循环结构才会结束执行。
while循环结构是“重复版”的if选择结构。
while循环结构中的表达式又称为循环控制表达式或循环条件。语句可以是单条语句或复合语句,又称为循环体。
while循环结构的一般形式与if选择结构类似。把if关键字换成while关键字就成了while循环结构。
while(表达式)
语句
while循环结构执行过程也与if选择结构类似,
先对表达式求值,若值为假,则不执行语句,循环结构执行结束;若值为真,则执行语句,这些都与if选择结构一样。与if选择结构不同的是
当条件为真执行完语句后,while循环结构会重复对表达式求值,若为真,则继续执行循环体;再次对表达式求值,……,
只有当表达式的值为假时,while循环结构才会结束执行。
while循环结构是“重复版”的if选择结构。
while循环结构中的表达式又称为循环控制表达式或循环条件。语句可以是单条语句或复合语句,又称为循环体。
4
例5-1 分析while循环结构的执行过程
循环条件i > 0,i是循环变量;
循环体中有2条语句。
第1次执行时,循环变量i的值是5,i > 0的值为真,执行循环体。
printf函数输出一个*号;--i使得变量i的值由5变为4。循环体执行完毕,第1次执行结束,开始第2次执行,这个过程一直重复,直到循环条件变假为止。
循环控制 循环体
循环变量 循环条件
i i > 0 printf("*"); --i;
5 真
这个while循环结构的循环条件是i > 0,表达式中的变量i也称为循环变量。循环体是复合语句,其中有两条语句。
循环结构的执行过程可以画表分析。表分循环控制和循环体两部分。循环控制通常占2列循环变量1列,循环条件1列。
循环体实际有几条语句,就占几列,即每条语句占1列。一行代表循环结构的一次执行。从第1行开始,
先写出循环变量i的值5,再求循环条件i > 0的值,真,接着,循环体开始执行。第1条语句的执行结果是输出一个*号,
因此,第1行第3列填个*号。第2条语句使变量i的值减1,第1行第4列写上变量i:5->4,表示变量i的值由5变为4。
接着开始第2次执行,在第2行中分析执行过程。
这个过程一直重复,直到循环条件变假为止。
5
画表分析while循环结构的执行过程
怎样用循环输出20个*号?
循环控制 循环体
循环变量 循环条件
i i > 0 printf("*"); --i;
5 真 * i:5→4
4 真 * i:4→3
3 真 * i:3→2
2 真 * i:2→1
1 真 * i:1→0
0 假 × ×
第2次执行,循环变量i的值4,循环条件真,循环体执行,输出*,变量i由4变成3;
第3次执行,循环变量i的值3,循环条件真,循环体执行,输出*,变量i由3变成2;
第4次执行,循环变量i的值2,循环条件真,循环体执行,输出*,变量i由2变成1;
第5次执行,循环变量i的值1,循环条件真,循环体执行,输出*,变量i由1变成0;
第6次执行,循环变量i的值0,循环条件假,循环结构执行完成。
因此,这个while循环结构输出5个*号。
怎样用循环输出20个*号?
分析可知,循环结构中的循环体执行1次,就会输出1个星号;20个*号,需要循环体执行20次。
循环条件为真,循环体执行1次,综上,控制循环,让循环条件为真20次输出20个*号,
第21次时值为假,结束循环结构的执行。
循环变量i的初值为20,循环条件i > 0,循环体执行1次,循环变量值减1。输出20个*号后,
循环变量i的值变为0,循环条件i > 0为假,循环体不再执行,恰好输出20个*号。
这个while循环结构中,循环变量i的值表示将要输出*号的个数。
6
例5-2 分析下面while循环结构的执行过程
循环控制 循环体
ch ch >= 'A' printf("%3c", ch); --ch;
'Z' 真 ··Z ch: 'Z'→'Y'
'Y' 真 ··Y ch: 'Y'→'X'
…… ……