循环结构是编程语言中的基本程序结构。 C语言中有两种表示方法,分别可以通过for循环和while循环结构来实现。上一篇文章已经讲了如何使用for循环。 详细内容请参考:C语言基础:跟我学循环结构for+break+的用法并举例。
这次我通过一个计算圆周率的例子向大家介绍一下C语言中while循环结构的编程方法。
基本语法说明
While循环有两种实现形式,下面分别介绍。
1. while 语句的一般形式
while语句的基本形式一般为:
其中,表达式为条件表达式,语句为循环体。 只要循环条件表达式为真,循环体语句就会被执行。 其特点是先判断条件表达式,然后执行循环语句。
2. do...while 语句的一般形式
do ... while 语句的基本形式一般为:
与第一种形式相比,其特点是先无条件执行循环,然后判断循环条件是否成立。 如果成立,则继续执行循环体语句。 换句话说,这样循环体语句将至少被执行一次。
以下示例演示了不同情况下的用法。
while 循环编程示例
示例需求是根据公式求出pi的近似值。 问题具体描述如下:
继续化简上式,可得pi的公式为:
1. while语句的实现形式
根据这个公式,C语言使用while循环的实现代码如下所示:
以下是代码的简要说明:
第7-10行定义了4个变量,其中r用于存储上式中各项的值。
第12行首先在while循环中计算r的值进行判断。
第13-18行,在while循环中计算r的值,累加到变量sum中,并将i加1。While的循环条件是只要r的绝对值大于10就继续循环-6的幂,否则退出循环。
第 20 行计算 pi 的值。 根据公式,sum*4就是pi的值。
第22行在控制台上打印pi的值,保留10位小数。
程序运行结果如下图:
2、do...while语句的实现形式
上面的实现也可以更改为使用 do...while 循环。 C语言代码如下所示:
其中,第12-17行在do...while循环中计算r的值,累加到变量sum中,并将i加1。循环条件仍然是只要绝对值满足,循环就会继续r 大于 10 的-6 次方。 与只使用 while 的区别在于,它首先执行一次循环体,然后判断是否继续循环。 因此,无需在循环外先计算r的值。
运行结果与上面的例子完全一样。
总结
与for循环相比,当循环次数确定时,while循环可能使用起来更方便,当循环次数不确定时,使用while循环可能更多。