目录
一、循环控制结构
1.1 for循环
//for(;;) 无限循环
for(设置初始值;循环条件判断;设置循环增减量)
{
语句块;//语句块的语句大于一句时{}不能省略
}
//一个例子
for(i=1;i<101;i++)
{
nSum+=1;//1到100求和
}
for循环执行步骤:
- 设置循环控制变量(比如i)
- 判断是否满足循环条件,如果满足则执行{}内语句,否则结束循环
- 执行设置循环增减量(一般为自加或自减)
- 回到步骤2继续执行
- 循环结束
一个特殊的运算符“,”:逗号表达式的值是由最后一个表达式的值决定的
逗号运算符:a=b++,c++等效于a=b++;c++
a=(b++,c++)等效于a=c++;
"a+b,a+c,a<c"的值就是a<c的值
//一个例子
#include <stdio.h>
int main()
{
int nSum=0;
for(i=1;i<101;printf("%d\n",nSum),i++)
{
nSum+=1;//1到100求和
}
}
运行结果:1
2
3
.
.
.
1+2+3+...+100
1.2 while循环
while(条件判断)
{
语句块;
}
特点:先执行条件判断的表达式,若为真则执行循环语句,否则跳过此循环;由于条件判断控制着循环的进行,因此循环体内必须包含改变条件判断表达式值的语句或者break,使程序可以退出循环,否则将为死循环。
1.3 do while循环
do
{
语句块;
}while(条件判断);//必须有分号
特点:for、while循环都是在开始位置进行条件判断,循环体有可能一次都不被执行,而do while循环是在执行一次循环体之后进行条件判断,来决定是否继续执行循环。
1.4 goto循环
goto语句为无条件转向语句,对结构化程序设计有一定的“伤害”,一般不用。
goto 语句标号;
//一个例子
lable_24:
nSum+=1;
if(i<101)
{
i++;
goto lable_24;//1到100求和
}
语句标号和标识符定义规则相同,上述例子中lable_24即语句标号
二、循环控制结构的设计
循环的控制
1.break语句
用途:跳出switch结构、跳出循环体提前结束本层循环
注意:
- break只能用于switch语句和循环语句中
- 嵌套循环中,break语句只能结束它所在层的循环
2.continue语句
用途:结束本次循环,接着进行下一次是否执行循环的判断
3.无限循环
//几种无限循环
while(1)
{
...
}
for(;;)
{
...
}
do
{
...
}while(1);