c语言中while do-while for 的问题
2.do-while和for循环均是先执行循环语句,后判断表达式对不对?
解释一下 展开
第一个是对的。
do-while是先无条件执行循环体,然後再判断循环条件是否成立。
但是,for不是先执行循环体。for和while相同。
lz主要是for语句实现循环没弄明白。那我好好说明一下:
for的一般形式为:
for(表达式1;表达式2;表达式3)
*举个例子:
for(i=1;i<=100;i++)
sum = sum + 1;
"i=1"是给的循环变量i设置初始值为1,“i<=100”是指定循环条件:当循环变量i的值小於或等於100时,循环继续执行。“i++”的作用是使循环变量i的值不断变化,以便最终满足终止循环的条件,使循环结束。
它相当於以下语句:
i=1;
while(i<=100)
{
sum = sum + 1;
i++;
}
*再举个例子:
for(i=1;i<=100;i++)
{printf("%d",i);}
for语句的执行过程如下:
(1) 先求解表达式1。本例中把整数1赋给变量i。
(2) 求解表达式2,若此条件表达式的值为真(非0),则执行for语句中的循环体,然後执行第(3)步。若为假(0),则结束循环,转到第(5)步。
上例中,循环条件表达式“i<=100”是一个关系表达式,当i=1时,表达式“i<=100”的值为真(非0),故执行循环体中的语句,即printf语句,输出i的当前值1。然後执行第(3)步。
(3) 求解表达式3。在本例中,执行i++,使i的值加1,i的值变成2.
(4) 转回步骤(2)继续执行。
由於此时i=2,表达式i<=100的值为真,再次执行循环体中的语句,printf语句输出i的当前值2。然後再执行步骤(3)。如此反复,直到i变到101,此时表达式i<=100的值为假,不再执行循环体,而转到步骤(5)。
(5) 循环结束,执行for语句的下面一个语句。
ps:
大陆一般都是用红皮书作教材。lz如果有红皮书(C程序设计第四版),翻到P114~P125
有很详细的叙述三种循环的不同。
第二题,do-while是先执行循环语句,后判断,for是先判断。
do while是先执行一次然后再判断真或假,“真”执行,“假”不执行!
for也是先判断再执行。
{
循环体;
}
while(条件);
即使条件假,也循环一次;注意条件后面的分号不能忘记。
for(条件1;条件2;条件3)
{
循环体;
}
相当于与;
条件1;
while(条件2)
{
循环体;
条件3;
}
这下你应该懂了吧!!!