第6章循环结构程序设计
第6章 循环结构程序设计
主要内容 1、循环结构 2、 while语句 3、 do whilel语句 4、for语句 5、循环的嵌套 6、goto、 break、 continue语句 重点掌握:循环结构的分析,循环语 句的执行过程
主要内容: 1、循环结构 2、while语句 3、do_while语句 4、for语句 5、循环的嵌套 6、goto、break、continue语句 重点掌握:循环结构的分析,循环语 句的执行过程
61循环结构的组登》 循环结构:描述有规律的重 复操作问题。 组成:要重复执行的操作 k=1 重复执行所需的条件。 例61:求10! < 分析:计算12*3*10; 需重复执行“乘”的操作 用循环结构描述:设k为每次 要乘的乘数,p为部分积 k=k+1 则循环执行的条件为: k<=10;循环重复执行的操 作为:kp送给p,k加1。 输出p end
6.1循环结构的组成 循环结构:描述有规律的重 复操作问题。 组成:要重复执行的操作, 重复执行所需的条件。 例6.1:求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=PK;K=K+1; 循环条件:K<=10 循环变量:K 进入循环前给K赋初值:1 改变循环变量的值:K++
如在本例中, 循环体:P=P*K; K=K+1; 循环条件:K<=10 循环变量:K 进入循环前给K赋初值:1 改变循环变量的值:K++
■例62从键盘输入20个试验■流程图 start 数据(整型),统计正数、 负数的个数。 a=0:b=0 分析: 重复执行20次,每次对一个数 0 进行处理:输入,判断正 负。 设j为已处理实验数据的个数, a,b分别保存正数、负数的 输入x 数,则: 处理x 循环体:输入第j个数,并处理 数据(用选择结构), +1 j增1 循环条件:j20 输出ab 循环变量的初值:0 循环变量增值:1 end
◼ 例6.2从键盘输入20个试验 数据(整型),统计正数、 负数的个数。 ◼ 分析: 重复执行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
循环有两类: 1.当型循环:先判断后热行,即 ·非 以上两例均为当型循环结构。(常用) 2.直到型循环:先执行后判所,即 (c语言中无直接描述直到型循环的语句,使用 时需先转换成当型循环结构,因此不常用, 般在编写菜单程序时使用。本长只作简要介 绍)
◼ 循环有两类: ◼ 1.当型循环:先判断后执行,即…… 以上两例均为当型循环结构。(常用) ◼ 2.直到型循环:先执行后判断,即…… (c语言中无直接描述直到型循环的语句,使用 时需先转换成当型循环结构,因此不常用,一 般在编写菜单程序时使用。本长只作简要介 绍)。 :
6.2 whilei语句 用于描述“当型”循环结构。 例63用whe语句编写例61的程序 maIn /求10! int k; long p; p- k=1 给循环变量赋初值 whie(k<=10)/循环条件放在whie语句的括号中/ {p→pk/循环体是一个复合语句 k++ 循环变量增值语句 printf("in10! is: old",p); 思考:若n由键盘输入,如何实现n!?
6.2 while语句 ◼ 用于描述“当型”循环结构。 ◼ 例6.3 用while语句编写例6.1的程序。 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! ?
62whie句 ■ While语句的一般格式: whil(表达式)表达式为循环条件* 循环体语句 其中,循环体语句可以是简单语句、复合语句或空语句。 如本例中循环体为复合语句p=pkk+:} 分析例63,可得 whilei语句的执行过程为: ①计算whle后条件表达式的值。 ②若表达式的值为真,则执行循环体语句,然后转① 否则,退出循环,即结束 while语句。 流程图(见下页)
6.2 while语句 ◼ While 语句的一般格式: while( 表达式) /*表达式为循环条件*/ 循环体语句 其中,循环体语句可以是简单语句、复合语句或空语句。 如本例中循环体为复合语句{ p=p*k; k++; } 分析例6.3,可得while语句的执行过程为: ① 计算while后条件表达式的值。 ② 若表达式的值为真,则执行循环体语句,然后转①; 否则,退出循环,即结束while语句。 流程图(见下页)
■ While语句的执行流程图: 表达式 循环体语句
◼ While语句的执行流程图: 表达式 循环体语句 Y N