C语言程序设计教案 盾环结构程序设计(一) 说明 本讲1.循环结构的概念 2. While语句的一般形式、流程图、执行过程 3.Do- while语句的一般形式、流程图、执行过程 4.for语句的一般格式、流程图、执行过程 5.三种循环的比较 重点1·Wh语句的执行过程及whe话句的应用 2.Do-whle语句的执行过程及 while语句的应用 3.for语句的的执行过程及应用 难点|1.whle语句的应用 2.Do- while语句应用 3.for语句的执行过程及应用 在许多问题中需要用到循环控制,例如,要输入全校学生成绩, 求若干个数之和。迭代求根等。几乎所有实用的程序都包含循环。循 环结构是结构化程序设计的基本结构之一,它和顺序结构、选择结构 共同作为各种复杂程序的基本构造单元。 循环结构的概念 引入利用计算机重复处理某些实际问题就构成了循环结构。在循环结 构中将某些语句重复执行,这些语句称为循环体;每重复一次都要判 断是继续重复还是停止重复,这个判断所依据的条件称为循环条件 循环体与循环条件一起构成了循环结构。 举例 例1:求1+2+3+.19+10的和 要完成上面的累加求和运算,设sum为累加和变量,i为循环控 制变量,用于控制循环次数,也就是循环继续的条件,并且i由1变 到10,实现上述算法的NS图如下 i=1. sum=0 当i<10 sum=sunt i=i+1 输出sm的值 要用C语言实现上述算法,就要学习实现循环的语句
C 语言程序设计教案 1 循环结构程序设计(一) 内 容 说明 本讲 内容 重点 难点 引入 举例 1.循环结构的概念 2.While 语句的一般形式、流程图、执行过程 3.Do--while 语句的一般形式、流程图、执行过程 4.for 语句的一般格式、流程图、执行过程 5.三种循环的比较 1.While 语句的执行过程及 while 语句的应用 2.Do--while 语句的执行过程及 while 语句的应用 3.for 语句的的执行过程及应用 1.while 语句的应用 2.Do--while 语句应用 3.for 语句的执行过程及应用 在许多问题中需要用到循环控制,例如,要输入全校学生成绩, 求若干个数之和。迭代求根等。几乎所有实用的程序都包含循环。循 环结构是结构化程序设计的基本结构之一,它和顺序结构、选择结构 共同作为各种复杂程序的基本构造单元。 一、循环结构的概念 利用计算机重复处理某些实际问题就构成了循环结构。在循环结 构中将某些语句重复执行,这些语句称为循环体;每重复一次都要判 断是继续重复还是停止重复,这个判断所依据的条件称为循环条件; 循环体与循环条件一起构成了循环结构。 例 1:求 1+2+3+……+9+10 的和 要完成上面的累加求和运算,设 sum 为累加和变量,i 为循环控 制变量,用于控制循环次数,也就是循环继续的条件,并且 i 由 1 变 到 10,实现上述算法的 N-S 图如下。 要用 C 语言实现上述算法,就要学习实现循环的语句
C语言程序设计教案 、 While语句 (1)【一般格式】 whle(表达式) 循环体语句 while语句是一种先判断后执行的循环语句 【注意】 ①“表达式”表达式可以是任何合法的C语言表达式。一般为关系/将实际间 题如何写 表达式或逻辑表达式。 成关系表 ②循环体可以是单个语句,也可是多个语句:如果是多个语句必须达式及逻 使用大括号“{}”将多个语句括起来构成一个复合语句。 辑表达式 2)【流程图及NS图】 表达式> 当表达式的值为真 循环体 循环体 (3)【执行过程】 先计算表达式的值并判断,若表达式的值为真(非零),则执行 循环体的语句:若表达式的值为假(零)时,结束循环 (4)【应用】 举例利用h语句“求1+2+3+-+9+10的和”参考程序如下:分析程序 的循环情 while(i<=10) 程序写入 i sum+=i; IC环境中 运行,观察 %od\ 运行结果 例2:利用 while语句计算n!(即:1x2x3x..xn) 参考程序如下: i int F=1,n, anf(%d”,&n), 分析循环 hile(i<=n) 中语句的
C 语言程序设计教案 2 举例 二、While 语句 ⑴【一般格式】 while(表达式) { 循环体语句 } while 语句是一种先判断后执行的循环语句。 【注意】 ① “表达式” 表达式可以是任何合法的 C 语言表达式。一般为关系 表达式或逻辑表达式。 ② 循环体可以是单个语句,也可是多个语句;如果是多个语句必须 使用大括号“{ }”将多个语句括起来构成一个复合语句。 ⑵【流程图及 N-S 图】 ⑶【执行过程】 先计算表达式的值并判断,若表达式的值为真(非零),则执行 循环体的语句;若表达式的值为假(零)时,结束循环。 ⑷【应用】 利用 while 语句“求 1+2+3+……+9+10 的和”参考程序如下: main() {int sum,i; sum=0;i=0; while (i<=10) { sum+=i; i++; } printf(“sum=%d\n”,sum); } 将实际问 题如何写 成关系表 达式及逻 辑表达式 分析程序 的循环情 况 程序写入 TC 环境中 运行,观察 运行结果 例 2:利用 while 语句计算 n!(即:1x2x3x……xn) 参考程序如下: main( ) { int i=1, n, s=1; scanf(“%d”, &n); while(i<=n) 分析循环 中语句的 表达式 循环体 假 真 当表达式的值为真 循环体
C语言程序设计教案 写法 + printf("s%\n"s);i 三、do- while语句 (1)【一般格式】 循环体语句 } while(表达式); do- while语句是一种先执行后判断的循环语句 (2)【流程图及NS图】 循环体 循环体 表达式> 当条件表达式为真 (3)【执行过程】 先执行循环体语句,再计算表达式的值,若表达式的值为真(非 零),再执行循环体的语句:当表达式的值为假(零)时,结束循环。 (4)【应用】 例例3:用d- while i语句编程实现求1+2+3+,+9+10的和。 参考程序如下: 注意循环 条件的位 =1; 程序写入 环境中 sum-sum 运行,观察 i++,) while(K<=10) 运行结果 printf("sum=%d\n", sum);) 例4:用do- while语句编程计算n!(即:1x2x3x…n) 模仿例3同学们自己写出相应的程序。 四、whle与do- while语句的区别 (1) while语句是先判断,后执行的循环语句;而do-whle语句是先执 行,后判断循环语句 (2)当第一次进行判断表达式的值时,表达式的值为假时,whle语句 不执行循环体语句,而转去执行循环结构的下一语句:而do- while语 句先执行一次循环体语句,而后转去执行循环结构的下一语句
C 语言程序设计教案 3 { s=s*i; i++; } printf("s=%d\n",s); } 三、do—while 语句 ⑴ 【一般格式】 do { 循环体语句 } while(表达式); do - while 语句是一种先执行后判断的循环语句。 ⑵ 【流程图及 N-S 图】 ⑶【执行过程】 先执行循环体语句,再计算表达式的值,若表达式的值为真(非 零),再执行循环体的语句;当表达式的值为假(零)时,结束循环。 ⑷【应用】 写法 举例 例 3:用 do—while 语句编程实现 求 1+2+3+……+9+10 的和。 参考程序如下: main( ) { int i, sum=0; i=1; do { sum=sum+i; i++; } while(i<=10); printf("sum=%d\n",sum); } 例 4:用 do—while 语句编程计算 n!(即:1x2x3x……xn) 模仿例 3 同学们自己写出相应的程序。 四、while 与 do-while 语句的区别 ⑴ while 语句是先判断,后执行的循环语句;而 do-while 语句是先执 行,后判断循环语句。 ⑵ 当第一次进行判断表达式的值时,表达式的值为假时,while 语句 不执行循环体语句,而转去执行循环结构的下一语句;而 do-while 语 句先执行一次循环体语句,而后转去执行循环结构的下一语句。 注意循环 条件的位 置 程序写入 TC 环境中 运行,观察 运行结果 循环体 真 假 表达式 循环体 当条件表达式为真
C语言程序设计教案 (3)不论是whle还是 do- while语句构成的循环,在循环体中都应有修 改循环控制变量值的语句,否则程序会进行无限循环状态。 1. while与do- while语句的格式 2.循环条件的设计。 3.注意循环结束时循环变量的值 4. while与do-whle语句的比较 五、for语句 (1)【一般格式】 for(表达式1:表达式2;表达式3) 循环体语句 【注意】 循环体语句可以是单个语句,也可是复合语句或空语句。三个表 达式之间用分号分隔 (2)【流程图及NS图】 匚计算表达式口 「计算表达式1的值 表达式 当表达式2为真 体 循环体 计算表达式3的值 计算表达式3 一般 表达式1:为循环变量赋初值。 表达式2:控制循环条件。 表达式3:控制循环变量的变化。 (3)【执行过程】 先计算表达式1的值:再计算表达式2的值,若为真,则执行循分析循环 环体,最后计算表达式3的值:再次计算表达式2的值,若为真,再过程 执行循环体,再计算表达式3的值;直到某次表达式2的值为假循环 结束,执行循环语句的后续语句 4)【应用】 实例利用or语句“求1+2+3+……+9+10的和” 参考程序如下 main( 循环结束 时变量i的 for(sum=0,=1;i<=10,i++) sum=sum+l printf("sum=%d\n", sum); j (5)for循环语句的特殊格式 以【for(i=1;j<=10;++)】语句为例
C 语言程序设计教案 4 ⑶ 不论是 while 还是 do-while 语句构成的循环,在循环体中都应有修 改循环控制变量值的语句,否则程序会进行无限循环状态。 1.while 与 do-while 语句的格式。 2.循环条件的设计。 3.注意循环结束时循环变量的值。 4.while 与 do-while 语句的比较 五、for 语句 ⑴【一般格式】 for(表达式 1;表达式 2;表达式 3) 循环体语句; 【注意】 循环体语句可以是单个语句,也可是复合语句或空语句。三个表 达式之间用分号分隔。 ⑵【流程图及 N-S 图】 一般: 表达式 1:为循环变量赋初值。 表达式 2:控制循环条件。 表达式 3:控制循环变量的变化。 实例 ⑶【执行过程】 先计算表达式 1 的值;再计算表达式 2 的值,若为真,则执行循 环体,最后计算表达式 3 的值;再次计算表达式 2 的值,若为真,再 执行循环体,再计算表达式 3 的值;直到某次表达式 2 的值为假循环 结束,执行循环语句的后续语句。 ⑷【应用】 利用 for 语句“求 1+2+3+……+9+10 的和” 参考程序如下: main( ) { int i; for (sum=0,i=1;i<=10;i++) { sum=sum+i; } printf("sum=%d\n",sum); } ⑸ for 循环语句的特殊格式 以【for (i=1;i<=10;i++) 】 语句为例 分析循环 过程 循环结束 时变量 i 的 值 计算表达式1 循环体 计算表达式3 表达式2 真 假 循环体 当表达式2为真 计算表达式1的值 计算表达式3的值
C语言程序设计教案 ①省略表达式1,语句格式为 【for(:表达式2:表达式3)】→ for(;i<=10;i++) ②省略表达式2,语句格式为 for(i=1;;i++) 【for(表达式1;;表达式3)】 if(i<=10) ③省略表达式3,语句格式为 for(i=1;i<=10;) 【for(表达式1;表达式2;)】 i++ i=1 ④省略表达式1及3,语句格式为 0;) for(;表达式2;)→ +;} ⑤省略三个表达式,语句格式为: 六、三种循环语句的比较 举例说明 (1) while语句和for语句是属于先测试终止条件的循环语句,故循环 体有可能一次也不执行 (2)do- while语句是后测试终止条件的循环语句,循环体至少执行 (3)for语句与 while语句本质上相近,很容易互换。所有循环语句都 是在终止条件为真时才能执行循环体 4)如果循环次数可以在进入循环语句之前确定,使用for语句较好 在循环次数难以确定时使用 while和do- while语句较好。 七、例题 【例1】从键盘上输入10个数,求出其中的最大值与最小值。 参考程序如下 Int I.x. max. min scant(%d”,&x) 对程序进 x-X, mIn-x 行详细分 sanf(%d”,&x) if( x>max)max-x else if( x<min) min=x 在TC环境 printf("max=%d min=%d\n, max, min); j 程序
C 语言程序设计教案 5 ① 省略表达式 1,语句格式为: 【for(;表达式 2;表达式 3)】→ ② 省略表达式 2,语句格式为 【for(表达式 1;;表达式 3)】→ ③ 省略表达式 3,语句格式为: 【for(表达式 1;表达式 2;)】→ ④ 省略表达式 1 及 3,语句格式为 for(;表达式 2;) → ⑤ 省略三个表达式,语句格式为: for(;;) → 六、三种循环语句的比较 ⑴ while 语句和 for 语句是属于先测试终止条件的循环语句,故循环 体有可能一次也不执行。 ⑵ do—while 语句是后测试终止条件的循环语句,循环体至少执行一 次。 ⑶ for 语句与 while 语句本质上相近,很容易互换。所有循环语句都 是在终止条件为真时才能执行循环体。 ⑷ 如果循环次数可以在进入循环语句之前确定,使用 for 语句较好; 在循环次数难以确定时使用 while 和 do—while 语句较好。 举例说明 七、例题 【例 1】 从键盘上输入 10 个数,求出其中的最大值与最小值。 参考程序如下 main( ) { int i , x , max , min ; scanf(“%d” , &x); max=x; min=x; for ( i=2; i<=10; i++) { scanf(“%d” , &x); if ( x>max) max=x ; else if( x<min) min=x; } printf(“max=%d min=%d\n” , max , min); } 对程序进 行详细分 析 在 TC 环境 中运行该 程序 i=1; for ( ;i<=10;i++) for(i=1 ; ; i++) { if(i<=10) ……} for (i=1 ;i<=10;) { …… i++; } i=1; for ( ;i<=10; ) { …… i++; } i=1; for ( ; ; ) { if (i<=10) …… i++; }