for(表达式1;表达式2;表达式3)
语句
表达式1 的作用;设置初始条件,只执行一次,可以为零个,一个或者多个变量
表达式2的作用:是循环条件表达式,用来判定是否继续循环,在每次执行循环体之前先执行此表达式,决定是否继续执行循环
表达式3的作用;作为循环的调整,例如,使循环变量增值,他是在执行循环体之后才进行的
因此可以理解为
for(循环变量赋初值;循环条件;循环变量增值)
例如:
for(i=1;i<=100;i++)
sum=sum+i;
其中,表达式1可以省略,不设置初值,但是后面的分号不能够省略,但是应该在for语句之前给循环变量赋值
i=1;
for(;i<=100;i++);
如果没有终止条件,就会一直无休止的运算下去
如果,表达式1和3都没有,就不能输出。
表达式1 可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式
例如
for(sum=0;i<=100;i++)sum=sum+i;
或者,for(i=0,j=100;j<=100;i++,j--)k=j+i;
在逗号表达式内按自左至右的顺序求解,整个逗号表达式的值为最右边的表达式的值
表达式2一般为关系表达式(如i<=100)或者逻辑表达式(如,a
1,for(i=0;(c=getchar())!='\n';i+=c);
几种循环的比较:
1:3中循环都可以用来处理同一问题,一般情况下它们可以互相代替
2,:在while循环和do......while循环中,只在while后面的括号内制定循环条件,因此为了使循环可正常结束,应在循环体中包括使循环趋于结束的语句(如i++,或i=i+1,等)。
for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全都放在表达式3中,因此for语句的功能更强,凡用while循环能完成的,用for循环都能实现
3:用while和do......while循环时,循环变量初始化的操作应在while和do.....while语句之前完成。而for语句可以可以在表达式1中实现循环变量的初始化
4while循环,do.....while循环和for循环,都可以用break跳出循环,用continue语句结束本次循环。
break:使流程跳到循环体之外,接着执行循环体下面的语句
注意,break语句只能用于循环语句和switch语句之中,不能单独使用
continue:只结束本次循环,就是跳过循环体下面尚未执行的语句,转到循环体结束点之前,接着执行for语句中的表达式3,然后,进行下一次是否执行循环的判定
区别
continue语句直接输本次循环,并不是终止整个循环的执行,而break语句则是终止整个循环过程,不再判断执行循环的条件是否成立