C语言程序设计第5章_循环结构类型

更新时间:2023-09-03 15:01:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第五章

本章要点

循环的基本概念

不同形式的循环控制多重循环问题

主要内容

5.1 循环的概念 5.2 用while语句和do-while语句实现循环 5.3 用for 语句实现循环 5.4 循环的嵌套 5.5 用break语句和continue语句改变循环状态 5.6 几种循环的比较 5.7 程 序 举 例

5.1 循环的概念问题1: n y 问题2:求学生平均成绩n 1 100

什么是循环? 为什么要使用循环? 分数相加后除以课数

在许多问题中需要用到循环控制。循环结构是 结构化程序设计的基本结构之一,它和顺序结 构、选择结构共同作为各种复杂程序的基本构 造单元。 循环分为两种:无休止循环和有终止循环 构成有效循环的条件:循环体和循环结束条件

5.2 用while语句和do-while语句实现循环5.2.1 用while语句实现循环 while语句用来实现“当型”循环结构 。一般形式:

while (表达式) 语句 当表达式为非0值时,执行while 语句中的内嵌语句。其特点是:先判 断表达式,后执行语句。

nn 1

100

例5.1 求1到100的和 #include <stdio.h> void main() {int i,sum=0; i=1; while (i<=100) { sum=sum+i; i++; 说明:(1)循环体如果包含一个以上 } 的语句,应该用花括弧括起来,以 printf(″%d\\n″,sum); } 复合语句形式出现.(2)在循环体中 应有使循环趋向于结束的语句。

运行结果:5050

5.2 用while语句和do-while语句实现循环5.2.1 用while语句实现循环

注意:(1) 循环体如果包含一个以上的语句,应该用 花括弧括起来,以复合语句形式出现。 (2) 在循环体中应有使循环趋向于结束的语句 。如果无此语句,则i的值始终不改变, 循环永不结束。

5.2 用while语句和do-while语句实现循环5.2.2 用do-while语句实现循环do-while语句的特点:先执行循环 体,然后判断循环条件是否成立。 一般形式: do 循环体语句 while (表达式); 执行过程:先执行一次指定的循环体语 句,然后判别表达式,当表达式的值 为非零(“真”) 时,返回重新执行循 环体语句,如此反复,直到表达式的 值等于0为止,此时循环结束。

nn 1

100

运行结果:5050 例5.2 求1到100的和 #include <stdio.h> void main() { int i,sum=0; i=1; do {sum=sum+i; i++; } while(i<=100); printf("%d\\n″,sum); }

5.2 用while语句和do-while语句实现循环5.2.3 while和 do-while循环的比较 凡是能用while循环处理,都能用do…while 循环处理。do…while循环结构可以转换成 while循环结构。 在一般情况下,用while语句和用do-while语 句处理同一问题时,若二者的循环体部分是一 样的,它们的结果也一样。但是如果while后面 的表达式一开始就为假(0值)时,两种循环的结 果是不同的。

nn 1

100

例5.3 while和do

-while循环的比较 运行结果: (1) #include <stdio.h> (2) #include <stdio.h> 运行结果: void main ( ) void main( ) 1↙ 1↙ {int sum=0,i; {int sum=0,i; sum=55 sum=55 scanf(“%d″,&i); scanf(”%d″,&i); while (i<=10) do再运行一次: 再运行一次: {sum=sum+I; { sum=sum+i; 11↙ 11↙ i++; i++; sum=11 sum=0 } while (i<=10); 说明:当while后面的表达式的第一 printf(“sum=%d\\n″ ,sum); 次的值为“真”时,两种循环得 } printf(“sum=%d\\n”,sum); 到的结果相同。否则,二者结果 } 不相同。

5.2

用while语句和do-while语句实现循环

5.2.4 while循环程序举例 例5.4用π/4≈1-1/3+1/5-1/7+… 公式求π的近似值,直到某一 项的绝对值小于为止。N-S图表示算法

nn 1

100

例5.4 求pi的近似值 pi= 3.141594 #include <stdio.h> #include<math.h> void main() { int s;float n,t,pi; t=1;pi=0;n=1.0;s=1; while(fabs(t)>1e-6) {pi=pi+t;n=n+2;s=-s;t=s/n;} pi=pi*4; printf(″pi=%10.6f\n″,pi); }

运行结果:

5.3

用for 语句实现循环

5.3.1 for语句的一般形式和执行过程

C语言中的for语句使用最为灵活,不仅可以用于 循环次数已经确定的情况,而且可以用于循环次 数不确定而只给出循环结束条件的情况,它完全 可以代替while语句。 一般形式: for(表达式1;表达式2;表达式3) 语句

5.3

用for 语句实现循环

5.3.1 for语句的一般形式和执行过程 for语句的执行过程:(1) 先求解表达式1。 (2) 求解表达式2,若其值为真(值为非0),则执 行for语句中指定的内嵌语句,然后执行下 面第(3)步。若为假(值为0),则结束循环, 转到第(5)步。 (3) 求解表达式3。 (4) 转回上面第(2)步骤继续执行。 (5) 循环结束,执行for语句下面的一个语句

5.3

用for 语句实现循环执行表达式1 表达式2?成立 不成立

5.3.1 for语句的一般形式和执行过程循环初始条件 循环控制条件 循环体 for语句等价于下列语句: 表达式1; while (表达式2) { 语句; 表达式3; }

执行语句 执行表达式3

执行for循环之后的语句

5.3

用for 语句实现循环

5.3.1 for语句的一般形式和执行过程 for语句最简单的形式: for(循环变量赋初值;循环条件;循环变量增值) 例如: for(i=1;i<=100;i++) sum=sum+i; 相当于: i=1; while(i<=100) {sum=sum+i;i++;} 用for语句 简单、方便。

5.3

用for 语句实现循环

5.3.2 for语句的各种形式 for语句相当灵活,形式变化多样:(1) for语句的一般形式中的“表达式1”可以省略,此时 应在for语句之前给循环变量赋初值。注意省略表达式1 时,其后的分号不能省略。如

for(;i<=100;i++) sum=sum+i;执行时,跳过“求解表达式1”这一步,其他不变。

5.3

用for 语句实现循环

5.3.2 for语句的各种形式(2) 如果表达式2省略

,即不判断循环条件,循环 无终止地进行下去。也就是认为表达式2始终为真。 如: for(i=1; ;i++) sum=sum+i; 表达式1是一个赋值表达式,表达式2空缺。它相当 于: i=1; while(1) {sum=sum+1;i++;}

本文来源:https://www.bwwdw.com/article/pspi.html

Top