文档介绍:第6章循环结构程序设计
主要内容:
1、循环结构
2、while语句
3、do_while语句
4、for语句
5、循环的嵌套
6、goto、break、continue语句
重点掌握:循环结构的分析,循环语句的执行过程。
循环结构:描述有规律的重复操作问题。
组成:要重复执行的操作,重复执行所需的条件。
:求10! .
分析:计算1*2*3*……*10;
需重复执行“乘”的操作:
用循环结构描述:设k为每次要乘的乘数,p为部分积,则循环执行的条件为:k<=10;循环重复执行的操作为:k*p送给p, k加1。
流程图:
start
k=1,p=1
k≤10
p=p*k
k=k+1
输出p
end
Y
N
一个完整的循环结构一般由四部分组成:
循环体、循环控制条件、循环变量的初始化、循环变量的增值
其中,循环体是需要重复执行的操作序列;循环控制条件是重复执行循环体所需的条件,即当条件成立时执行循环体,否则结束循环;循环变量是决定循环条件是否成立的变量;循环变量的增值反映了循环变量的改变规律,它使循环变量的值向着使循环结束的方向改变;循环变量的初始化是指在进入循环前,给循环变量赋初值,否则首次进入循环时,无法确定循环控制条件是否成立。
如在本例中,
循环体:P=P*K; K=K+1;
循环条件:K<=10
循环变量:K
进入循环前给K赋初值:1
改变循环变量的值:K++
(整型),统计正数、负数的个数。
分析:
重复执行20次,每次对一个数进行处理:输入,判断正、负。
设j为已处理实验数据的个数,a,b分别保存正数、负数的个数,则:
循环体:输入第j个数,并处理数据(用选择结构),
j增1
循环条件:j<20
循环变量的初值:0
循环变量增值:1
流程图:
start
j=0
j<20
j=j+1
输出a,b
end
a=0;b=0
Y
N
输入x
处理x
循环有两类:
:先判断后执行,即……
以上两例均为当型循环结构。(常用)
:先执行后判断,即……
(c语言中无直接描述直到型循环的语句,使用时需先转换成当型循环结构,因此不常用,一般在编写菜单程序时使用。本长只作简要介绍)。
:
while语句
用于描述“当型”循环结构。
。
main() /*求10!*/
{int k;long p;
p=1;
k=1; /*给循环变量赋初值*/
while(k<=10) /*循环条件放在while语句的括号中*/
{ p=p*k; /*循环体是一个复合语句*/
k++; /*循环变量增值语句*/
}
printf("\n10! is:%ld",p);
}
思考: 若 n 由键盘输入,如何实现n! ?
while语句
While 语句的一般格式:
while( 表达式) /*表达式为循环条件*/
循环体语句
其中,循环体语句可以是简单语句、复合语句或空语句。
如本例中循环体为复合语句{ p=p*k; k++; }
,可得while语句的执行过程为:
①计算while后条件表达式的值。
②若表达式的值为真,则执行循环体语句,然后转①;否则,退出循环,即结束while语句。
流程图(见下页)
While语句的执行流程图:
表达式
循环体语句
Y
N