
程序设计基础(上) 张立红 13405330459(88028) QQ:2653453357 9#501
程序设计基础(上) 张立红 13405330459(88028) QQ:2653453357 9#501

6.1循环控制结构-本章知识点 6.1循环控制结构 6.2 while语句 6.3 do while语句 6.4逗号运算符和逗号表达式 6.5for语句 6.6空语句在循环中的使用 6.7循环语句的选择 6.8循环嵌套 6.9 break和continue语句
6.1 循环控制结构-本章知识点 6.1 循环控制结构 6.2 while语句 6.3 do while语句 6.4 逗号运算符和逗号表达式 6.5 for语句 6.6 空语句在循环中的使用 6.7 循环语句的选择 6.8 循环嵌套 6.9 break和continue语句

6.6空语句在循环中的使用一P107 >空语句; 例如:for(=0;1空语句的应用: 占位以后再写程序代码
➢ 空语句 ; 例如: for (i = 0; i < 10; i++) ; //空语句做循环体 ➢ 空语句的应用: 占位 //以后再写程序代码 6.6 空语句在循环中的使用—P107

6.7循环语句的选择一P108 >若必须先判断再执行循环体-选while。 >若必须先判断再执行循环体并且已知循环次数 -选for >若至少执行一次循环一选择do一while(较少使用)
➢ 若必须先判断再执行循环体-选 while。 ➢ 若必须先判断再执行循环体并且已知循环次数 -选 for ➢ 若至少执行一次循环—选择do—while(较少使用)。 6.7 循环语句的选择—P108

6.8循环嵌套一P109 >在一个循环体内又包含另外一个完整的循环结构,称为循环的嵌套; >外层的循环称为外循环,被嵌套的循环称为内循环。 >内嵌的循环中还可以嵌套循环一多层循环。 >3种循环(while循环、do-while循环和for循环)可以相互嵌套。 循环嵌套的执行过程: 外层循环 每进入一次外循环,内循 内层循环 环要按照赋初值、判断循环条件、 执行内循环体三个过程进行, 直到内循环条件不成立,再进入 内层循环 内层循环 下一次外循环。 合法的嵌套循环
6.8 循环嵌套—P109 ➢ 在一个循环体内又包含另外一个完整的循环结构,称为循环的嵌套; ➢ 外层的循环称为外循环,被嵌套的循环称为内循环。 ➢ 内嵌的循环中还可以嵌套循环-多层循环。 ➢ 3种循环(while循环、do-while循环和for循环)可以相互嵌套。 外层循环 内层循环 内层循环 内层循环 合法的嵌套循环 循环嵌套的执行过程: 每进入一次外循环,内循 环要按照赋初值、判断循环条件、 执行内循环体-三个过程进行, 直到内循环条件不成立,再进入 下一次外循环

例如:对10个班级,计算每个班的《程序设计基础》的平均成绩。 分析: 1)外循环1=1-10 2)在每个外循环内 s=0.0;1每个班的成绩和 内循环:要按照赋初值、判断循环条件、执行内循环体一三个过程进行。 j=130(假设每班30人){输入第j个成绩; s=s+第j个成绩;} 输出s/30 ①int i,j,sc;double s; ① int i,j,sc,n; double s; ②for(e1;ik=10;i++)∥10个班级 ②for(=1;ik=10;i+)∥10个班级 ③ 《s=0;∥s-每班成绩和 3 {s=0;n=0;s-每班成绩和,n-每班人数 ④ forj=1;j水=30;j++)/每班30人 ④ scanf("%d",&sc);I/班内第一个成绩 ⑤ scanf("%d",&sc); ⑤ while (sc>=0) ⑥ S=S+SC; ⑥ s=s+sc;n++; ⑦ ⑦ scanf("%d",≻/班内下一个成绩 ⑧ printf("%fn",s/30)l∥每个班平均成绩 ⑨ printf("%nn",sln);∥每个班平均成绩
例如:对10个班级,计算每个班的《程序设计基础》的平均成绩。 分析: 1)外循环 i = 1-10 2)在每个外循环内 s=0.0; //每个班的成绩和 内循环:要按照赋初值、判断循环条件、执行内循环体-三个过程进行。 j =1-30(假设每班30人) { 输入第j个成绩; s=s+第j个成绩;} 输出s/30 ① int i,j,sc,n; double s; ② for (i=1;i=0) ⑥ { s=s+sc; n++; ⑦ scanf("%d",&sc); //班内下一个成绩 ⑧ } ⑨ printf("%lf\n",s/n);//每个班平均成绩 ⑩ } ① int i,j,sc; double s; ② for (i=1;i<=10;i++) // 10个班级 ③ { s=0; //s-每班成绩和 ④ for (j=1;j<=30;j++) //每班30人 ⑤ { scanf("%d",&sc); ⑥ s=s+sc; ⑦ } ⑧ printf("%lf\n",s/30);//每个班平均成绩 ⑨ }

合法的嵌套循环: (1)while() (2)do (3)while() { { 。 aaeaa while0 do do { { {. } }while(); }while(); 。年年年0 000450 }while(); (4) for( 外循环 注意: do ()内、外循环的循环控制变量不能同名。 内循环 while( (2)内循环应完全置于外循环内 -内外循环不能交叉。 内循环
(1) while( ) { . while() { . } . } (2) do { . do { . }while( ); . }while( ); (3) while( ) { . do { . }while( ); . } (4) for( ) { . do { . }while(); . while() { . } . } 外循环 内循环 内循环 合法的嵌套循环: 注意: (1) 内、外循环的循环控制变量不能同名。 (2) 内循环应完全置于外循环内 - 内外循环不能交叉

常用的循环嵌套-二重循环-注意如下: 明确外循环要实现的目标、循环次数。 明确内循环要实现的目标,循环次数。 ③ 建立内外循环之间的联系: 每个变量初始化在外循环内?外? 为什么??????
常用的循环嵌套-二重循环-注意如下: ① 明确外循环要实现的目标、循环次数。 ② 明确内循环要实现的目标,循环次数。 ③ 建立内外循环之间的联系: 每个变量初始化在外循环内?外? 为什么??????

结构化程序设计方法:自顶向下,逐步求精 ■例6.10* ■思路 米** ◆循环5次,每次输出一行。 **米米* ◆输出第i行:输出*,共2i-1个星号一重复。 *米米米米米水 *****米**水 级算法: ①for(i=1;iK=5;it+) ②{ 二级算法:输出第i行 ③ 输出第i行: ①forG=1j<=2*i-1j++) ④ 换行; ② printf(*");∥输出一个*: ⑤】
结构化程序设计方法:自顶向下,逐步求精 ◼ 思路 ◆ 循环5次,每次输出一行。 ◆ 输出第i行:输出*,共2*i-1个星号—重复。 一级算法: ① for (i=1;i<=5;i++) ② { ③ 输出第i行; ④ 换行; ⑤ } 二级算法:输出第 i 行 ① for (j=1;j<=2*i-1;j++) ② printf("*"); //输出一个*; ◼ 例6.10

>分析: ■ 例6.10-1 A、上半区: 共5行一外循环i=1一5 1 第1行输出1一i 12 每行输完换行 123 ①int i,j; ②for(i=1;i=1;)1外循环一控制行数 ②{for(j=1;j<=i;j+)∥内循环-控制每行输出数字 ③ printf("%d ",j); ④ printf("In"); 输出第i行后的换行 ⑤
◼例6.10-1 ➢分析: A、上半区: 共5行—外循环 i =1—5 第 i 行 输出1—i 每行输完换行 ① int i,j; ② for ( i = 1; i =1; i-) //外循环—控制行数 ② { for ( j = 1; j <= i; j++) //内循环-控制每行输出数字 ③ printf("%d ",j); ④ printf(“\n”); //输出第 i 行后的换行 ⑤ }