引言:当程序需要重复执行相同操作时便会用到循环体,如·
要向计算机输人全班 50 个学生的成绩; (重复 50 次相同的输人操作)
分别统计全班 50 个学生的平均成绩;· (重复 50 次相同的计算操作)
求 30个整数之和 ; (重复 30 次相同的加法操作)
检查 30个学生的成绩是否及格; (重复 30 次相同的判别操作)
要处理以上问题,最原始的方法是分别编写若千个相同或相似的语句或程序段进行处理。
下面通过程序介绍常用的两种循环函数,while循环和for循环。
当我们要求解一条从1+2+3+4+·····+100的公式时用循环就能轻而易举解出最后结果。
流程图
完整代码
#include<stdio.h>
int main()
{
int i=1,sum=0; //定义变量i的初值为1,sum的初值为0
while (i<=100) //当i>100,条件表达式i<=100的值为假,不执行循环体while
{ //循环体开始
sum=i+sum; //第一次累加后,sum的值为1
i++; //加完后,i的值加1,为下次累加做准备
} //循环体结束
printf("sum=%d\n",sum); //输出最后的累加结果
return 0;
}
程序运行结果
程序分析
(1)循环体如果包含一个以上的语句,应该用花括括起来,作为复合语句出现。如果不加花括号,则 while 语句的范围只到 while 后面第1个分号处。例如,本例中 while 语句中如无花括号,则 while语句范围只到“sum=sum+i;”为止。
(2)不要忽略给 i和 sum 赋初值(这是未进行累加前的初始情况),否则它们的值是不可预测的,结果显然不正确。读者可上机试一下。
(3)在循环体中应有使循环趋向于结束的语句。例如,在本例中循环结束的条件是“i>100”,因此在循环体中应该有使i增值以最终导致 i>100 的语句,本例用“i+十;”语句来达到此目的。如果无此语句,则i的值始终不改变,循环永远不结束。
for循环解法
完整代码
#include<stdio.h>
int main()
{
int i=1,sum=0; //定义变量i的初值为1,sum的初值为0
for ( i=1; i <=100; i++) //确定i的初值,循环次数i<=100,每次循环后i自增1;
{
sum=sum+i; //sum进行累计操作
}
printf("sum=%d\n",sum); //输出最后的累加结果
return 0;
}
代码运行结果
程序解析
先是“i=1”是给循环变量i设置初值为1,“i ~100”是指定循环条件:当循环变量i的值小于或等于 100 时,循环继续执行。“i++”的作用是使循环变量i的值不断变化,以便最终满足终止循环的条件,使循环结束。也就是:循环变量i的初值为 1,循环变量增量为 1,循环变量终值为 100,每执行一次循环,的值加 1,直到i的值大于 100,就不再执行了。