C语言程序设计 第5章循环结构程序设计 八此京故太受计算机系
第5章 循环结构程序设计 北京科技大学 计算机系 C 语言程序设计
本章主要内容 while循环控制 do- while循环控制 for循环控制 用goto语句实现循环控制 循环结构中的跳转语句 循环的嵌套 循环结构程序设计举例 2021/2/24
2021/2/24 本章主要内容 2 ⚫ while循环控制 ⚫ do-while循环控制 ⚫ for循环控制 ⚫ 用goto语句实现循环控制 ⚫ 循环结构中的跳转语句 ⚫ 循环的嵌套 ⚫ 循环结构程序设计举例
5whil循环控制 语句一般格式 while(表达式)语句 般为关系表达式·称为内嵌语句, 或逻辑表达式,也 可以是基本语句、 可以是C语言其他 控制语句,也可 类型的合法表达式 以是复合语句 ●用来控制循环体是·是循环重复执行 否执行 的部分 2021/2/24
2021/2/24 3 5.1 while循环控制 ⚫ 语句一般格式 while (表达式) 语句 ⚫ 一般为关系表达式 或逻辑表达式,也 可以是C语言其他 类型的合法表达式 ⚫ 用来控制循环体是 否执行 ⚫ 称为内嵌语句, 可以是基本语句、 控制语句,也可 以是复合语句 ⚫ 是循环重复执行 的部分
功能 计算表达式的值,为非0(逻辑真)时,重复执 行内嵌语句,每执行一次,就判断一次表达式的 值,直到表达式的值为0时结束循环,转去执行 while后面的语句。 循环控制条件 流程图 NS结构图 当表达式为真 表达式求 语句 语句 循环体 2021/2/24
2021/2/24 功能: 4 ⚫ 计算表达式的值,为非0(逻辑真)时,重复执 行内嵌语句,每执行一次,就判断一次表达式的 值,直到表达式的值为0 时结束循环,转去执行 while后面的语句。 当表达式为真 语句 N-S结构图 N Y 流程图 表 达 式 非 0? 语句 循环控制条件 循环体
例如 【例51】编写程序,求100个自然数的和 即:s=1+2+3++100 思路:寻找加数与求和的规律 加数}从1变到100,每循环一次,使i增1, 直到值超过100。的初值设为1。 求和—设变量sum存放和,循环求 sum=sum+i,直至i超过100。 2021/2/24
2021/2/24 例如: 5 【例5.1】编写程序,求100个自然数的和 即: s=1+2+3+ … +100 思路:寻找加数与求和的规律 加数i——从1变到100,每循环一次,使i增1, 直到i的值超过100。i的初值设为1。 求和——设变量 sum 存放和,循环求 sum=sum+i,直至i超过100
算法和程序: maino 运行j5_1 1, sum=0 iint i, sum; 当i<=100 =1: sum=0 sum=sum+i Whle(<=100) i+十 I sum=sum+i 输出 sum + i:循环控制变量 printi("sum=%dn",sum); sum:累加器 程序输出结果: sum=5050 2021/2/24
2021/2/24 算法和程序: 6 main( ) { int i,sum; i=1; sum=0; while (i<=100) { sum=sum+i; i++; } printf("sum=%d\n",sum); } 运行jc5_1 程序输出结果: sum=5050 i: 循环控制变量 sum: 累加器 i=1,sum=0 当i <= 100 sum=sum+i i++ 输出sum
如果whle的表达式)值为0,则循环体 次也不执行(例如当的初值=101)。 ●在循环体中必须有使循环趋向结束的操作 否则循环将无限进行(死循环) ●在循环体中,语句的先后位置必须符合逻 辑,否则会影响运算结果。 思考程序段的输出? while (i<=100) 运行后,输出: i++; sun=5150 sum=sum+;}原因是什么? 2021/2/24
2021/2/24 注意: 7 ⚫ 如果while的 (表达式) 值为0,则循环体一 次也不执行 (例如当i的初值=101) 。 ⚫ 在循环体中必须有使循环趋向结束的操作, 否则循环将无限进行(死循环)。 ⚫ 在循环体中,语句的先后位置必须符合逻 辑,否则会影响运算结果。 思考程序段的输出? …… while (i<=100) { i++; sum=sum+i; } 运行后,输出: sum=5150 原因是什么?
注意(续) 8 ●为了保证循环正常运行,应该特别注意: 循环控制条件的描述 控制条件的初始状态(初始值) 循环体内部对控制条件的影响 2021/2/24
2021/2/24 注意(续): 8 ⚫ 为了保证循环正常运行,应该特别注意: – 循环控制条件的描述 – 控制条件的初始状态(初始值) – 循环体内部对控制条件的影响
52 do-while语句 语句一般格式 do语句 Whie(表达式) 功能: 先执行内嵌语句(循环体),之后计算 表达式的值,不为0(逻辑真)时,再 执行循环体并判断条件,直到表达式的 值为0结束循环,转去执行 while下面 的语句。 2021/2/24
2021/2/24 9 5.2 do-while语句 ⚫ 语句一般格式 do 语句 while (表达式); ⚫ 功能: – 先执行内嵌语句(循环体),之后计算 表达式的值,不为0(逻辑真)时,再 执行循环体并判断条件,直到表达式的 值为 0 结束循环,转去执行while下面 的语句
do-while循环的算法 10 流程图 NS结构图 循环体 循环体 当表达式为真 表达式非0? maino i int i=1, sum=0; do Isum=sum+i 用 do-whilet语句 +十 求100个自然数的和 } while(i<=100); printf( %dn",sum); 2021/2/24
2021/2/24 10 do-while循环的算法 循环体 当表达式为真 N-S结构图 N Y 循环体 表达式非0? 流程图 main( ) { int i=1,sum=0; do { sum=sum+i; i++; } while (i<=100); printf("%d\n",sum); } 用do-while语句 求100个自然数的和