■例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