第五章 循环结构课后反思
---恢复内容开始---
本章重点、难点:
一、for语句
1、for语句的一般形式:
for(<初值表达式>;<条件表达式>;<循环变量表达式>)
{
<循环体语句>
}
2、for语句的重要特征
- <初始表达式>可以省略,但需保留(;),同时在for之前必须给循环控制变量控制变量赋值,形式为:
<初始表达式>;
for(;<条件表达式>;<循环表达式>)
<循环体语句> - <条件表达式>一般不能省略,否则为无限循环。
二、while与do-while语句
1、while语句的一般形式:
while(<条件表达式>)
{
循环语句
循环变量表达式
}
2、while语句的重要特征
- 环变量表达式>用来更新计算循环变量的值,一般情况下,<循环体语句>应该是用一对花括号括起来的复合语句,其中至少要有两条语句。
- 若<循环体语句>中没有<循环变量表达式>,而只有循环语句,则有可能会使程序出现无限循环而发生错误。
- 由于while循环是先判断<循环表达式>的值,后决定是否执行<循环体语句>,因此,<循环体语句>有可能一次也没有执行。
- 在一般情况下,for和while可以互相转换。
3、do-while语句的一般形式:
do
{
<循环体语句>
}while(<条件表达式>);
4、do-while语句的特征
- 一般情况下,一定要有可以使<条件表达式>的值为假的语句,否则会使程序出现无限循环。
- do-while语句中的<循环体语句>的执行不同于for和while语句,它的<循环体语句>会先执行一次,因为是先执行<循环体语句>,后判断<条件表达式>。
- 在某些情况下,while和do-while可以互相转换。
三、break语句与continue语句
1、break语句既可用于分支结构,又可用于循环结构,其作用是跳出控制结构语句。
2、continue语句不会终止循环,而是在<循环体语句>没有执行完的情况下,结束当前循环,提前进入下一循环。
课本案例详解
---恢复内容结束---
本章重点、难点:
一、for语句
1、for语句的一般形式:
for(<初值表达式>;<条件表达式>;<循环变量表达式>)
{
<循环体语句>
}
2、for语句的重要特征
- <初始表达式>可以省略,但需保留(;),同时在for之前必须给循环控制变量控制变量赋值,形式为:
<初始表达式>;
for(;<条件表达式>;<循环表达式>)
<循环体语句> - <条件表达式>一般不能省略,否则为无限循环。
二、while与do-while语句
1、while语句的一般形式:
while(<条件表达式>)
{
循环语句
循环变量表达式
}
2、while语句的重要特征
- 环变量表达式>用来更新计算循环变量的值,一般情况下,<循环体语句>应该是用一对花括号括起来的复合语句,其中至少要有两条语句。
- 若<循环体语句>中没有<循环变量表达式>,而只有循环语句,则有可能会使程序出现无限循环而发生错误。
- 由于while循环是先判断<循环表达式>的值,后决定是否执行<循环体语句>,因此,<循环体语句>有可能一次也没有执行。
- 在一般情况下,for和while可以互相转换。
3、do-while语句的一般形式:
do
{
<循环体语句>
}while(<条件表达式>);
4、do-while语句的特征
- 一般情况下,一定要有可以使<条件表达式>的值为假的语句,否则会使程序出现无限循环。
- do-while语句中的<循环体语句>的执行不同于for和while语句,它的<循环体语句>会先执行一次,因为是先执行<循环体语句>,后判断<条件表达式>。
- 在某些情况下,while和do-while可以互相转换。
三、break语句与continue语句
1、break语句既可用于分支结构,又可用于循环结构,其作用是跳出控制结构语句。
2、continue语句不会终止循环,而是在<循环体语句>没有执行完的情况下,结束当前循环,提前进入下一循环。
几何图形
1程序代码
# include<stdio.h> main() { int i,j,k,n=7; for (i=1;i<=5;i++) { for (j=i;j<5;j++) printf(" "); for (k=1;k<=(2*i-1);k++) printf("*"); printf("\n"); } for(i=1;i<=4;i++) { for(j=1;j<=i;j++) printf(" "); for(k=i;k<=(n-i+1);k++) printf("*"); printf("\n"); } }
运行结果
分析:
将图形分为上下两个三角形即可。
2程序代码
#include<stdio.h> main() { int i,j; for (i=1;i<=5;i++) { for (j=1;j<=(2*i-1);j++) printf("*"); printf("\n"); } for (i=1;i<=4;i++) { for (j=1;j<=(9-2*i);j++) printf("*"); printf("\n"); } }
运行结果
分析
同样是将图形分为两个三角形。
3程序代码
#include<stdio.h> main() { int i,j,k; for (i=1;i<=5;i++) { for (j=1;j<=(10-2*i);j++) printf(" "); for (k=1;k<=(2*i-1);k++) printf("*"); printf("\n"); } for (i=1;i<=4;i++) { for (j=1;j<=2*i;j++) printf(" "); for (k=1;k<=(9-2*i);k++) printf("*"); printf("\n"); } }
运行结果
分析
同样是分为上下两个三角形。
4程序代码
# include<stdio.h> main() { int i,j,k,n=9; for (i=1;i<=5;i++) { for (j=1;j<i;j++) printf(" "); for (k=i;k<=(n-i+1);k++) printf("*"); printf("\n"); } for(i=2;i<=5;i++) { for(j=i;j<5;j++) printf(" "); for(k=1;k<=(2*i-1);k++) printf("*"); printf("\n"); } }
运行结果
分析
分为上下两个等腰三角形。