一、while 循环语句的定义
在 C 语言中,while 循环是除了 for 循环外最常用的循环语句。
相对于 for 循环而言,while 循环更多地应用于循环次数未定的循环控制中。
while 循环的一般表达形式为:
while(表达式)循环体
while 循环中并没有明显的循环变量,且表达式也可以是任何能够计算为数值的表达式,其迭代部分一般位于循环体内,所以相对于 for 循环语句来说,控制要更加灵活一些。
while 循环的执行规则为:
首先计算表达式的值,判断表达式的值是否为真,若值为真(非 0),则执行循环体语句,否则,退出循环。
二、while 循环语句应用
与 for 循环类似,while 语句属于直到型循环,并且也经常用于数学计算。
1. 计算前 n 项和
输入数字 n,计算所输入数字的前 n 项和,其实就是如何使用 while 循环语句来计算当数字较大情况下数列的前 n 项和。
这里以从 1 开始的等差数列为例,利用 while 循环语句来实现对数列前 n 项和的计算
实现代码如下:
#include int main(){int n = 0;double sum = 0.0;printf("请输入数字n=");scanf_s("%d", &n);while (0 != n) //判断是否需要继续循环{sum = sum + n;n--;}printf("前n项和=%0f\n", sum);}
实现效果如图
2. 记录键盘输入字符数
从键盘不停输入字符,记录并打印键盘输入的字符数,同步输出键入的字符,直到键盘输入!则退出。调用 getchar 函数用于接收键盘输入字符数,使用 while 循环,只要输入字符非!号符,则继续等待键盘输入。
实现代码如下:
#include void main(){int n = 0;char c;printf("请输入字符:\n");c = getchar(); //接收第一个输入符while ('!' != c) //判断是否为结束符{if ('\n' != c) //判断是否为无效回车符{n++;printf("现已输入 %3d 个字符,最后一个字符是 %c\n", n, c);}c = getchar(); //获取下一个字符}}
实验效果如图
由于 gtechar 函数只有输入 ’\n’ 回车符才能结束本次输入操作,因此需要注意程序第 13 行对于无效回车符的入参检查。
PS:在编写程序时,可用过键入 “!” 结束符来终止输入。