举个例子吧。看1到100累加求和。
程序分析:
(1)循环体如果包含一个以上的语句,应该用花括号括起来,作为复合语句出现。如果不加花括号,则while语句的范围只到while后面的第1个分号处。例如,本例中while语句如果没有花括号,则while语句的范围只到“sum+=i;”。
(2)不要忽略给i和sum赋初值(这是未进行累加前的初始情况),否则它们的值是不可预测的,结果显然不正确。
(3)在循环体中应有使循环趋向于结束的语句。例如:在本例中循环结束的条件是"i>100",因此在循环体中应该有使i增值以最终导致i>100的语句,今用"i++;"语句来达到此目的。如果无此语句,i的值不改变,循环永远不结束。
dowhile
do while语句的特点是:先无条件地执行循环体,然后判断循环条件是否成立。
do
语句
while(表达式)
表达式的值为非零("真")时,返回重新执行循环体语句,如此反复,知道表达式的值等于0("假")为止,此循环结束。
用do......while也能解决上述程序。
这里要注意while后面要加“;”。
比较一下
来个例子吧先:
#include <stdio.h>
int main()
{
int i,sum=0;
printf("please enter i,i=?");
scanf("%d",&i);
do
{
sum+=i;
i++;
}
while(i<=10);
printf("sum=%d\n",sum);
}
第一次输入1,结果为sum=55;
第二次输入11,结果为sum=11;
#include <stdio.h>
int main()
{
int i,sum=0;
printf("please enter i,i=?");
scanf("%d",&i);
while(i<=10)
{
sum+=i;
i++;
}
printf("sum=%d\n",sum);
}
第一次输入1,结果为sum=55;
第二次输入11,结果为sum=0;
可以看到,当输入i的值小于或等于10时,二者得到的结果相同。而当i>10时,二者结果就不同了。这是因为此时对while循环来说,一次也不执行循环体(表达式"i<=10"的值为假),而对do while循环语句来说则至少要执行一次循环体。可以得到结论:当while后面的表达式的第一次的值为"真"时,两种循环得到的结果相同;否则,二者结果不相同。