除了 while 和 for 语句,在C语言中还有一个语句 goto,它也能构成循环。不过由于 goto 语句很容易造成代码混乱,维护和阅读困难,饱受诟病,不被推荐,而且 goto 循环完全可以被其他循环取代,所以后来的很多编程语言都取消了 goto 语句,我们也不再讲解。
国内很多大学仍然讲解 goto 语句,但也仅仅是完成教材所设定的课程,goto 语句在实际开发中很难见到。
while和for 循环都可以用来处理同一个问题,一般可以互相代替。
对于while和do-while循环,循环体中应包括使循环趋于结束的语句。
用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成,而for语句可以在内部实现循环变量的初始化。
for循环是最常用的循环,它的功能强大,可以代替其他循环。
用下面的公式求π:
分析:首先,系数为正数的项的分母是4n-3(n为正数项的项数),为负数的项的分母为4n-1(n为负数项的项数),即分母的变化规律是1、3、5、7...的奇数数列,则第n项的分母为2n-1,第10000项的分母为2*10000-1。
#include <stdio.h>
#include <math.h>
int main()
{
double p=0,j=1;
int i;
for( i=1;i<10000;i++ ) //此处i为项数
{
j=pow(-1.0,i+1)/(2*i-1); //pow(x,y)用来求x的y次幂
p+=j;
printf("%lf\n",4*p); //输出每一项的值
}
printf("%lf\n",4*p); //输出最终pi值
return 0;
}
由于输出结果较多,请大家自己运行代码。
i 的值越大,结果越精准,同样计算时间也更长。
pow() 是一个数学函数,使用方法为pow(x, y),用来求x的y次幂;需要引入头文件 math.h。
更多例子请查看:
读者要注意,学习了if、switch、while、for 语句你就可以写一些简单的小程序了,这对大部分人是一个障碍。
相信你肯定明白了选择结构和循环结构的语法,但是遇到实际问题时,可能仍然不知道从何入手,写不出代码,这是因为大家初学编程,还没有形成编程思维,没有足够的编程经验,编程不仅仅是语法,更多的是解决问题的能力。
大家要多参考别人的代码,并通过实例练习来不断强化编程思维,我们也给出了很多例子,希望大家好好研习并能够自己完成代码。