原标题:C语言之while循环
while语句是一种用于产生循环动作的语句,它的一般形式为:
while (条件表达式)
{
循环语句
循环变量表达式
}
其中循环语句和循环变量表达式一起构成循环体语句。
该语句的语法功能可由下面两个步骤组成。
1. 计算条件表达式的值,若该值为“假”,则跳出循环,执行循环体后面的语句;若该值为“真”,则执行循环体语句。
2. 重复步骤一的操作。
关于while循环结构的几点说明。
1. 循环变量表达式是用来更新计算循环变量的值,一般情况下,循环体语句应该是用一对花括号括起来的复合语句,其中至少要有两条语句。
2. 若循环体语句中没有循环变量表达式,而只有循环语句,则有可能会使程序出现无限循环而发生错误。
3. 由于while循环是先判断循环表达式的值,后决定是否执行循环体语句,因此,循环体语句有可能一次也没有执行。
我们来看一个例子:
还记得我们上一节用for循环来计算1到100的级数和的例子吗?
这节我们用while循环来执行这一操作。
代码如下:
#include
int main()
{
int i = 1, sum = 0;
while (i <= 100)
{
sum = sum + i;
i++;
}
printf("sum=%d\n", sum);
return 0;
}
程序的运行结果为:5050
显然,对于for循环结构,只要将初始表达式看做是循环开始之前的语句,就可以看做是while循环的结构,也就是说,用for结构表达的程序可能转化成while结构,反之也成立。
下面我们在来看一个例子:
从键盘输入一个正整数,计算这个数的阶乘。
例如计算n的阶乘。
n!=n*(n-1)*(n-2)*···*2*1。
计算机是从1开始计算到n为止,这时就需要一个循环变量来代表从1到n的值,用一个变量来代表从1到第n个数相乘的结果。
我们用while循环来计算。
代码如下:(此程序是在visual stdio 2019编译器中运行的)
#include
int main()
{
int i, n;
long s;
printf("请输入要计算阶乘的数据n:\n");
scanf_s("%d",&n);
if (n >= 0)
{
s = 1;
i = 1;
while (i <= n)
{
s = s * i;
i++;
}
printf("%d!=%ld", n, s);
}
else
{
printf("你输入数据有误!\n");
}
return 0;
}
我们输入5,计算出结果为120。
这个程序对于n>=13的数据来说,会出现运行错误的结果,因为即使使用长整型来储存变量的值,也是不够长的。这就需要用到数组,指针等了。
这个我们以后再介绍。
好了,今天的讲述就到这里了,欢迎大家提出问题。返回搜狐,查看更多
责任编辑: