for语句
- 格式:
for(表达式1;表达式2;表达式3)
{ 语句块}
eg:
用for语句求1+2+3……+100
#include<stdio.h>
int main()
{
int i=1;
int sum=0;
for(i=1;1<100;i++)
sum+=i;
printf("%d\n",sum);
return 0;
}
2.for语句的一般形式中的“表达式1"可以省略,此时应在for语句之前给循环变量赋初值。
注:省略表达式1时,其后分号不可省略。
eg:
i=1;
for(;i<100;i++)
sum+=i;
3.表达式3也可以省略,但应另外设法能正常结束。
eg:
for(i=1;i<100;)
{
sum+=i;
i++;
}
4.可以省略表达式1和3,只有表达式2,即只给循环条件。在这种情况下,完全等于while语句。可见for语句比while语句功能强,除了可以给出循环条件外,还可以赋初值,使循环变量自动增值等。
eg:
i=1;
for(;i<100;)
{
sum+=i;
i++;
}
5.三个表达式都可以省略。
eg:
for (;;); 相当于while语句(1),无终止的执行循环体
6.表达式1可以是设置循环变量初值表达式,也可以是与循环变量无关的其他表达式,表达式1和3可以是一个简单表达式,也可以是逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔。
eg:
for(i=1,i<100;i++)
sum+=i;
7.表达式2一般是关系表达式(i<100)或逻辑表达式(如a<b&&x<y),但可以是设置表达式或字符表达式
for,while,do……while三种循环的比较
- 三种循环都可以用来产后护理同一个问题,一般情况下它们可以相互代替。
表达式1; 表达式1; for(表达式1;表达式2;表达式3)
while(表达式2) do {
{ {
表达式3; 表达式3; 语句块
} } }
while(表达式2);
2.用while和do……while循环时,循环变量初始化的操作应在while和do……while语句之前完成,而for语句可以在表达式1中实现循环变量的初始化。
3.在while循环和do……while循环中只在while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环体中包括是循环区趋于结束的语句(如i++等)。
而for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环中的操作全部放在表达式3中。
因此for语句的功能更强,凡是用while循环能完成的用for循环都能实现。
4.while循环,do……while 循环和for循环 都可以用break语句跳出循环,用continue语句结束本次循环。
注:continue语句只结束本次循环,而非终止整个循环
break语句结束整个循环,不在判断执行循环的条件是否成立,即提前结束循环,截止执行循环下面的语句(break语句只能用于循环语句和Switch语句,不能单独使用)
5.三种循环之间可以相互嵌套 。