第四章循环结构 4.1用格里高利公式求T的近似值(while语句) 4.2统计一个整数的位数(do-while语句) 4.3判断素数(break和continue语句) 4.4求11+2!+.+1001(循环嵌套) 4.5循环结构程序设计
第 四 章 循环结构 4.1 用格里高利公式求π的近似值 (while语句) 4.2 统计一个整数的位数 (do-while语句) 4.3 判断素数 (break 和 continue 语句) 4.4 求1!+2!+...+100! (循环嵌套) 4.5 循环结构程序设计
本章要点 ■什么是循环?为什么要使用循环?如何实现循环? 实现循环时,如何确定循环条件和循环体? 怎样使用while和do-while语句实现次数不确定的 循环? ■while和do-while语句有什么不同? ■如何使用break语句处理多循环条件? ■如何实现多重循环?
本章要点 ◼ 什么是循环? 为什么要使用循环? 如何实现循环? ◼ 实现循环时,如何确定循环条件和循环体? ◼ 怎样使用while 和do-while语句实现次数不确定的 循环? ◼ while 和do-while语句有什么不同? ◼ 如何使用break语句处理多循环条件? ◼ 如何实现多重循环?
循环结构回顾 ◆for语句一般应用形式: for(表达式1;表达式2;表达式3) fo(循环变量赋初值;循环条件;循环变量增值) 循环体语句 #include void mainO int i,sum=0; for(i=1;i<=100;i++) 确定循环 sum+=i; 次数 printf("%od",sum);
◆for语句一般应用形式: for( 循环变量赋初值; 循环条件; 循环变量增值) { 循环体语句 } #include void main() { int i,sum=0; for( i=1; i<=100; i++ ) sum+=i; printf("%d",sum); } for (表达式1;表达式2;表达式3) 循环结构回顾 确定循环 次数
4.1用格里高利公式求π的近似值 使用格里高利公式求π的近似值,要求精 确到最后一项的绝对值小于104。 =1-+二-十 111 4 5 4.1.1程序解析 4.1.2 while语句 4.1.3输入一批学生的成绩,统计平均分
4.1 用格里高利公式求π的近似值 使用格里高利公式求π的近似值,要求精 确到最后一项的绝对值小于10–4 。 4.1.1 程序解析 4.1.2 while语句 4.1.3 输入一批学生的成绩,统计平均分 1 1 1 1 4 3 5 7 = − + − +
4.1.1程序解析一求π的近似值 #include #include π 11 void main() =1-二+ -一十· 4 3 57 int denominator,flag; double item,pi; flag =1;denominator=1 item =1.0;pi =0; while(fabs (item)>=0.0001) item flag 1.0 denominator; pi=pi+item; flag -flag; denominator denominator +2; 不确定循 } pi=pi*4; 环次数 printf(“pi=%fn”,pi); for(i=1;i<=100;i++)
4.1.1 程序解析-求π的近似值 #include #include void main( ) { int denominator, flag; double item, pi; flag = 1; denominator = 1 ; item = 1.0; pi = 0; while (fabs (item) >= 0.0001) { item = flag * 1.0 / denominator; pi = pi + item; flag = -flag; denominator = denominator +2; } pi = pi * 4; printf ( “pi = %f\n”, pi); } 1 1 1 1 4 3 5 7 = − + − + 不确定循 环次数 for( i=1; i<=100; i++ )
4.1.2 while语句 while(条件) 循环体语句; 表达式1 假 表达式 循环条件 表达式2 假 真 真和 循环体语句 循环体语句 循环体 表达式3 while下一条语句 for的下一条语句 图4-2for语句的执行流程
4.1.2 while 语句 while (条件) 循环体语句; 真 假 while下一条语句 表达式 循环体语句 循环条件 循环体
4.1.2 while语句 ◆一般形式: while(表达式) ◆特点:先判断表达式, 循环体语句; 后执行循环体(当型) ◆执行流程:当表达式为真(非0值)时,执行 循环体语句;直到表达式为假,循环终止 while 求1+2+…+100的和 假(0) sum=0;i=1; 表达式 真(非0) while(i<=100) sum=sum+i; 循环体 i++; 甘以R 尔中奶
◆一般形式: while (表达式) 循环体语句; ◆执行流程:当表达式为真(非0值)时,执行 循环体语句;直到表达式为假,循环终止 表达式 循环体 假(0) 真(非0) while 4.1.2 while语句 ◆特点:先判断表达式, 后执行循环体(当型) 求1+2+…+100的和 sum=0; i=1; while(i<=100) { sum=sum+i; i++; }
4.1.21 while语句 一 般形式: while(表达式) ◆特点:先判断表达式, 循环体语句 后执行循环体(当型) sum=0;i=1; 说明 +循环体有可能一次也不执行(一开始条 while(i<=100) 件就不成立) sum=sum+i; +当表达式为真(非0值)时,即可继续执 i++; 行循环 +循环体包括一个以上语句的用}组成复 合语句 prif%d”,sum; +有使循环趋向结束的语句,如++ +无限循环:也即无循环结束条件 while(1) 用一对大括号{}将若 循环体: 干语句顺序组合在一 +下列情况,退出while循环: 起就是一个复合语句 ●条件表达式不成立(为零) ●循环体内遇break
◆一般形式: while(表达式) 循环体语句 4.1.2 while语句 说明: 循环体有可能一次也不执行(一开始条 件就不成立) 当表达式为真(非0值)时,即可继续执 行循环 循环体包括一个以上语句的用{ }组成复 合语句 有使循环趋向结束的语句,如 i++ 无限循环: 也即无循环结束条件 while(1) 循环体; 下列情况,退出while循环: ⚫条件表达式不成立(为零) ⚫循环体内遇 break ◆特点:先判断表达式, 后执行循环体(当型) sum=0; i=1; while(i<=100) { sum=sum+i; i++; } printf(“%d”,sum); 用一对大括号{ }将若 干语句顺序组合在一 起就是一个复合语句
例用while循环求1+2+..+100的累加和 #include 循环条件 void mainO int i,sum=0; 循环初值 while(i<=100) sum=sum+i; 循环变量增值 i计+; 循环终值 printf("%d",sum); 循环体 循环结构的五要素:循环初值,循环条件,循环终值,循环变量增值,循环体
例 用while循环求1+2+…+100的累加和 #include void main() { int i,sum=0; i=1; while(i<=100) { sum=sum+i; i++; } printf("%d",sum); } 循环初值 循环变量增值 循环终值 循环条件 循环体 循环结构的五要素: 循环初值,循环条件,循环终值,循环变量增值,循环体
例用while循环求1+2+..+n的累加和 #include #include void main( void mainO int i,sum=0,n; i-1; int i,sum=0; i=1 求 printf((“Enter n:”); while(i<=100) scanf(“%d”,&n)月 可 sum=sum+i; while(i<=n) i计+; sum=sum+i; t+; printf("%d",sum); printf("%d",sum);
例 用while循环求1+2+…+n的累加和 #include void main() { int i,sum=0; i=1; while(i void main() { int i,sum=0,n; i=1; printf(“Enter n: ”); scanf(“%d”,&n); while(i<=n) { sum=sum+i; i++; } printf("%d",sum); }