在编程的过程中,你是否会遇到一些繁琐的操作?当你想要重复类似的操作很多次的时候,你是否会因为要不停的复制代码而头疼?现在我们使用一种新语法形式来解决这个问题——使用For循环。 我们来做这样一个题:计算 1+2+3+……+100 的和。 这样一道题我们可以使用高斯的算法来解决,但是如果使用电脑来帮助我们计算,只要一步步算就可以了。但是,我们是不可能在代码里面写 1+2+3+……+100 的。所以我们要使用For循环。 格式:for(初始语句;执行条件;增量){循环体} 执行顺序:1、初始语句 2、执行条件是否符合? 3、循环体 4、增加增量 如上题,我们要求从1开始加到100,每次增加1,翻译成程序语言就是
int sum,i; sum=0; for(i=1;i<=100;i++) { sum=sum+i; }
当程序执行完后,变量sum的值就是所求的值。其中i是用来计数的,以后for循环多用i来计数(这是习惯)。 现在我们来分析一下for循环的工作原理。
i=1 判断 i<=100 成立 sum 加i i++(就是 i+1 的意思。详见i++与++i的区别) 判断 i<=100 成立 sum 加i i++(此时i=3) ………… i++(此时i=100) 判断 i<=100 成立 sum 加i i++(此时i=101) 判断 i<=100 不成立 退出,for循环做完
这样,大家都应该明白for循环是怎样工作了吧。 这里要提一下的是,for循环的循环体如果只有一条语句,for循环的大括号可以省略,即: for(i=1;i<=n;i++) num=num*i; 好,再做一题:输入一个数n(n>1),输出n!的值。n!(n的阶层)=1*2*3*……*n 这题我就不分析了,原理一摸一样。如果不懂再留言吧。 参考源代码:
#include"stdio.h" main() { long num=1; int n,i; printf("请输入n:"); scanf("%d",&n); for(i=1;i<=n;i++) num=num*i; printf("%d的阶层是%d\n",n,num); }
|