while语句的一般形式如下:
while(表达式)
{
循环语句
}
对于while语句说明以下几点:
- 在C语言中while语句也被称为当型循环语句,它的执行特点是:先判断,后执行。
- while语句的执行过程:
(1)先判断循环条件是否成立,即判断表达式是否为0。
(2)当表达式为0时,循环不执行,跳到下一个语句。当表达式不为0时,执行循环语句,然后再转到(1)继续执行。
示例:计算100以内正整数的和。
求100以内正整数的和,就是求表达式1+2+3+…+100结果,使用while循环语句,控制循环的条件是变量i的值不大于100,只要i不大于100,就继续执行,每循环一次i的值就增加1,当i>100时,循环条件不满足,循环结束,输出结果。
#include <stdio.h>
void main()
{
int i, sum = 0;
i = 1;
while (i <= 100) /*while循环语句*/
{
sum += i; /*依次加入*/
i++; /*循环一次i的值就增加1*/
}
printf("1+2+3+...+100=%d\n", sum); /*输出结果*/
}
程序运行的结果为:
1+2+3+…+100=5050
在本例中,程序执行到while语句时,首先判断while语句中的条件是否满足,即i是否小于或等于100,如果条件为真,则执行循环体,否则结束循环。
示例:编一个程序,求费波那契(Fibonacci)序列:1,1,2,3,5,8,……请输出前20项。
序列满足关系式:Fn=Fn-1+Fn-2
程序分析:
(1) 通过观察费波那契(Fibonacci)序列,F=1,F2=1,以后各项都等于前两项之和,序列满足关系式:Fn=Fn-1+Fn-2。
(2) 使用程序要求输出前20 项之和,前两项已知,需要从第三项开始,因此,使用while循环,计数i从3开始,判断条件是i<=20。
(2) while循环体中,求出t=F1+F2的和为费波那契(Fibonacci)序列的第三项,然后将第二项和第三项作为第四项的前两项,计数i加1,依此类推。
#include <stdio.h>
void main()
{
int i, t, f1 = 1, f2 = 1;
printf("%d %d ", f1, f2);
while (i <= 20)
{
t = f1 + f2;
printf("%d ", t); /* 求出新的数 */
if (i % 5 == 0) /*每五项为一列输出*/
printf("\n");
f1 = f2;
f2 = t; /* 对f1和f2更新 */
i++;
}
}
运行结果如下:
1 1 2
3 5 8 13 21
34 55 89 144 233
377 610 987 1597 2584
4181 6765 10946 17711 28657
评论前必须登录!
注册