一、语法格式
C语言格式:
for(表达式1(循环变量赋初值);表达式2(循环条件);表达式3(循环变量增量))
{
循环体;
}
表达式1(循环变量赋初值),只执行1次,用来给控制循环的变量赋初值,可以是一个赋值语句,也可以是一个变量或常量。可看作规定从几开始计数。
表达式2(循环条件),一般是一个关系表达式,它规定了什么时候循环,什么时候退出。可看作规定循环次数。如;for(i=1;i<=100; i++),i大于100时退出循环
表达式3(循环变量增量),可看作规定步长,同时作计数器用。
表达式1、表达式2、表达式3之间用“;”分开。
二、代码测试并理解
| 再理解此部分(C语言式) | #include "stdafx.h"
int main( )
{
int i=1,sum=0; for (1;i<=2;1) {
sum=sum+i;
i++;
}
printf("%d",sum);
getchar();
return 0; }
用表达式3(常量)
专门规定步长为1
并自定计数器i
| 计数器在系统内部,并省略。
表达式1(1)
表达式2(i<=2)
表达式3(1,步长)
i在与sum运算前后的值是不一样的。
①第1次循环
i=1 计数器=1
sum=0+1=1
i=1+1=2
②第2次循环
i=2计数器=2
sum=1+2=3
i=2+1=3
③第3次循环
i=3 不符合i<=2
不再进入循环
| #include "stdafx.h"
int main( )
{
int i=1,sum=0; for (i;i<=2;i++) {
sum=sum+i;
}
printf("%d",sum);
getchar();
return 0; }
用表达式3(i++)
既作计数器
又规定步长为1
| 表达式1(i)
表达式2(i<=2)
表达式3(i++)
i++既表示步长为1,又作计数器用。
i在与sum运算前后的值是不一样的。
①第1次循环
i=1
sum=0+1=1
i=1+1=2
②第2次循环
i=2
sum=1+2=3
i=2+1=3
③第3次循环
i=3 不符合i<=2
不再进入循环
| | | | |
易语言的For语句:
变量循环首(整数型变量起始值,整数型 变量目标值,整数型 变量递增值,[整数型变量 循环变量])
三、扩展
for循环中的“表达式1(循环变量赋初值)”、“表达式2(循环条件)”和“表达式3(循环变量增量)”都是可选项,可以缺省,但“;”不能缺省。每个表达式省略后的含义和用法都是不一样的(尽量使用规范的用法)。
省略部分 | 代码 | 说明 | 表达式1 (循环变量赋初值) 省略 | …… int i=1,sum=0; for ( ;i<=2;i++) { sum=sum+i; } printf("%d",sum); ……
| 表示不给循环变量赋初值
要提前给循环变量赋初值
int i=1,sum=0;此行已赋初值
经测试:
表达式1直接使用常量也行
| 表达式2 (循环条件) 省略 | …… int i=1,sum=0; for ( i=1; ;i++) { sum=sum+i; } printf("%d",sum); …… | 表示不限制循环条件 (死循环) 相当于:
while (1)
{
语句;
}
| 表达式3 (循环变量增量) 省略 | …… int i=1,sum=0; for ( i=1;i<=2; ) { sum=sum+i; i++;//自定步长、计数器 } printf("%d",sum); …… | 省略了循环变量增量(步长) 省略了计数器
因此要在循环体内自定义 步长和计数器 | 表达式1 (循环变量赋初值) 省略 表达式3 (循环变量增量) 省略 | ……
int i=1,sum=0;
for ( ;i<=2; )
{
sum=sum+i;
i++;//自定步长、计数器
}
printf("%d",sum);
……
| 表示不给循环变量赋初值
要提前给循环变量赋初值
要自定义步长和计数器
相当于:
int i=1,sum=0;
while (i<=2)
{
sum=sum+i; i++;//自定步长、计数器 }
| 表达式1 表达式2 表达式3 全省略 | ……
int i=1,sum=0;
for ( ; ; )
{
sum=sum+i;
i++;//自定步长、计数器
}
printf("%d",sum);
……
| 上述4种的综合变种:
死循环,无初值,
无步长,无计数器
相当于:
while (1)
{
语句;
}
|
|