do-while语句及for语句(初学者)
1、do-while语句的一般形式为:
do
语句
while(表达式);
这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断这个表达式是否为真,如果为真则继续循环;如果为假,则中止循环。因此do-while语句至少要执行一次循环语句。
例:
#include<stdio.h> void main() { int i,sum=0; i=1; do { sum=sum+i; i++; } while(i<=100); printf("%d",sum); }
区分while语句与do-while语句
#include<stdio.h> void main() { int i,sum=0; scanf("%d",&i); while(i<=10) { sum=sum+i; i++; } printf("%d",sum); }
#include<stdio.h> void main() { int i,sum=0; scanf("%d",&i); do { sum=sum+i; i++; } while(i<=10); printf("%d",sum); }
注:一般情况下,用while和do-while语句解决同一问题时,若二者的循环体部分是一样的,它们的结果也一样。但当while后面的“表达式”一开始为“假(0)”时,两种循环的结果不同。这是因为此时while循环的循环体不被执行,而do-while循环的循环体被执行一次。
2、for语句
在C语言中,for语句使用最为灵活,它完全可以取代while语句。它的一般形式为:for(表达式1;表达式2;表达式3)
过程如下:
(1)先求解表达式1;
(2)求解表达式2,若值为真(非0),则执行for语句中指定的内嵌语句,然后执行下面第3步;若值为假(0),则循环结束,转到第5步;
(3)求解表达式3;
(4)转回上面第二步继续执行。
(5)循环结束,执行for语句下面的一个语句。
理解:for(循环变量赋初值;循环条件;循环变量增量)语句
例
#include<stdio.h> void main() { int i,sum=0; for(i=1;i<=100;i++) { sum=sum+i; } printf("%d",sum); }
注意:(1)for循环中的“表达式1(循环变量赋初值)“、”表达式2(循环条件)“、”表达式3(循环变量增量)“都是选择项,即可以缺省,但”;“不能缺省。
(2)省略了”表达式1(循环变量赋初值)“,表示不对循环控制变量赋初值。
(3)省略了”表达式2(循环条件)“,则不做其他处理时便成为死循环。
例:for(i=1;;i++)
{
sum=sum+i;
}
(4)省略了”表达式3(循环变量增量)“,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。
例:for(i=1;i<=100;)
{
sum=sum+i;
i++;
}
(5)3个表达式都可以省略。
例:for(;;)语句相当于while(1)语句(死循环)
(6)表达式1可以是设置循环变量的初值的赋值表达式额,也可以是其他表达式。
例:for(sum=0;i<=100;i++)
sum=sum+i;
(7)表达式1和表达式3可以是一个简单表达式也可以是逗号表达式。
例:for(sum=0,i=1;i<=100;i++)
sum=sum+i;
或
for(i=0,j=100;i<=100;i++,j--)
k=i+j;
(8)表达式2一般是关系表达式或逻辑表达式,但也可以是数值表达式或字符表达式,只要其值非0,就执行循环体。
例:for(;(c=getchar())!='\n';)
{
printf("%c",c);
}