一、用法
1、for循环:
for (循环控制变量初始化; 循环终止条件; 循环控制变量增量)
{
循环体
}
int i;
for(i = 0, sum =0; i < 10; i++)
{
sum += i;
}
for循环执行步骤:
1、先执行虚幻控制变量初始化
2、执行循环终止条件,如果为真,执行循环体,进入第3步;如果为假,退出循环。
3、执行循环体。
4、执行循环控制变量增量,转入第2步。
2、do while循环
控制变量初始化
do
{
循环体
}while(循环终止条件);
i = 1;
sum = 0; // 初始化条件
do
{
printf("i = %d.\n", i);
sum += i;
i += 2; // 增量,循环体的一部分
}while (i < 100); // 终止条件
do while循环的执行步骤:
0、首先是循环初始化。这一部分其实不属于do while循环本身。
1、执行循环体(循环控制变量的增量是循环体的一部分)
2、判断终止条件。若成立,则转入1;若不成立则退出
3、while循环
循环控制变量初始化
while(终止条件)
{
循环体;
}
i = 1;
sum = 0; // 循环初始化
while (i < 100) // 终止条件
{
printf("i = %d.\n", i);
sum += i; // 循环体
i += 2; // 循环控制增量,属于循环体的一部分
}
while循环的执行步骤:
0、首先是循环初始化。这一部分其实不属于while循环本身。
1、先判断终止条件是否满足。如果是真,则进入第2步;否则直接退出。
2、执行循环体,然后转入第1步
常用于控制程序
二、应用累加(自然数)算法
int f1(int n)
{
int ret = 0;
int i = 0;
for(i=1; i<=n; i++)
{
ret += i;
}
return ret;
}
int f2(int n)
{
int ret = 0;
while( (n > 0) && (ret += n--) );
return ret;
}
int f3(int n)
{
int ret = 0;
if( n > 0 )
{
do
{
ret += n--;
}while( n );
}
return ret;
}
通过对比累加算法中三种循环语句中的写法,自然体会到三者用法。
三、总结
总结:不管哪种循环结构,都不能缺少一些要素:
循环控制条件初始化,终止条件,循环控制变量增量,循环体。
不同的循环方式(for和while和do while)都有这些,只是格式不同,表现形式不同,放的地
方不同,可读性不同,看起来和设计起来难度不同。
while循环和do while循环哪里不同?while循环是先判断后执行,do while循环是先执行后判
断等循环开始转了之后,其实是一样的。