C语⾔之while循环
while语句是⼀种⽤于产⽣循环动作的语句,它的⼀般形式为:
while (条件表达式)
{
循环语句
循环变量表达式
}
其中循环语句和循环变量表达式⼀起构成循环体语句。
该语句的语法功能可由下⾯两个步骤组成。
1. 计算条件表达式的值,若该值为“假”,则跳出循环,执⾏循环体后⾯的语句;若该值为“真”,则执⾏循环体语句。
2. 重复步骤⼀的操作。
关于while循环结构的⼏点说明。
1. 循环变量表达式是⽤来更新计算循环变量的值,⼀般情况下,循环体语句应该是⽤⼀对花括号括起来的复合语句,其中⾄少要有两条语句。
2. 若循环体语句中没有循环变量表达式,⽽只有循环语句,则有可能会使程序出现⽆限循环⽽发⽣错误。
3. 由于while循环是先判断循环表达式的值,后决定是否执⾏循环体语句,因此,循环体语句有可能⼀次也没有执⾏。我们来看⼀个例⼦:
还记得我们上⼀节⽤for循环来计算1到100的级数和的例⼦吗?
这节我们⽤while循环来执⾏这⼀操作。
代码如下:
#include <stdio.h>
int main()
{
int i = 1, sum = 0;
while (i <= 100)
{
sum = sum + i;
i++;
i++;
}
printf("sum=%d\n", sum);
return 0;
}
程序的运⾏结果为:5050
while语句简单例子显然,对于for循环结构,只要将初始表达式看做是循环开始之前的语句,就可以看做是while循环的结构,也就是说,⽤for结构表达的程序可能转化成while结构,反之也成⽴。
下⾯我们在来看⼀个例⼦:
从键盘输⼊⼀个正整数,计算这个数的阶乘。
例如计算n的阶乘。
n!=n*(n-1)*(n-2)*···*2*1。
计算机是从1开始计算到n为⽌,这时就需要⼀个循环变量来代表从1到n的值,⽤⼀个变量来代表从1到第n个数相乘的结果。
我们⽤while循环来计算。
代码如下:(此程序是在visual stdio 2019编译器中运⾏的)#include <stdio.h>
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的数据来说,会出现运⾏错误的结果,因为即使使⽤长整型来储存变量的值,也是不够长的。这就需要⽤到数组,指针等了。
这个我们以后再介绍。
好了,今天的讲述就到这⾥了,欢迎⼤家提出问题。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论