for循环是编程语言中一种循环语句,而循环语句由循环体及循环的判定条件两部分组成,其表达式为:for(单次表达式;条件表达式;末尾循环体){中间循环体;}。 [1-2]
中文名
for循环
外文名
For cycle
类 别
编程语言
功 能
循环执行
形 式
for (表达式1; 表达式2; 表达式3)
目录
1 for循环语法
for循环语法
1.语句最简形式为:
for( ; ; )
2.一般形式为:
{
中间循环体;
}
其中,表示式皆可以省略,但分号不可省略,因为“;”可以代表一个空语句,省略了之后语句减少,即为语句格式发生变化,则编译器不能识别而无法进行编译。 [1]
for循环小括号里第一个“;”号前为一个为不参与循环的单次表达式,其可作为某一变量的初始化赋值语句, 用来给循环控制变量赋初值; 也可用来计算其它与for循环无关但先于循环部分处理的一个表达式。
“;”号之间的条件表达式是一个关系表达式,其为循环的正式开端,当条件表达式成立时执行中间循环体。
执行的中间循环体可以为一个语句,也可以为多个语句,当中间循环体只有一个语句时,其大括号{}可以省略,执行完中间循环体后接着执行末尾循环体。
执行末尾循环体后将再次进行条件判断,若条件还成立,则继续重复上述循环,当条件不成立时则跳出当下for循环。 [1]
3.for循环流程图
执行过程为:
求解表达式1;
求解表达式2。若其值为真,则执行 for 语句中指定的内嵌语句,然后执行第3步;若表达式2值为假,则结束循环,转到第5步;
求解表达式3;
转回上面第2步继续执行;
循环结束,执行 for 语句下面的语句。
执行过程中,“表达式1”只执行一次,循环是在“表达式2”“表达式3”和“内嵌语句”之间进行的。 [1]
for循环四种运行模型
(1)三角基本模型: [2]
示例:
1
2
3
4
5
6
7
8
9
10
11
#include<stdio.h>
intmain()
{
inta,b,c;
scanf("%d,%d",&a,&b);
for(;a<b;b=c)
{
c=a;a=b;
}
printf("由大到小排序:%d,%d",a,b);
}
(2)中间循环体被省略,只剩下“;”空语句时的左右往返模型: [2] [1]
条件表达式——末尾循环体
示例:
1
2
3
4
5
6
7
8
#include<stdio.h>
intmain()
{
inta,b,c;
scanf("%d,%d",&a,&b);
for(;a<b;c=a,a=b,b=c);
printf("由大到小排序:%d,%d",a,b);
}
(3)末尾循环体被省略后的上下往返模型条件表达式——中间循环体
示例:
1
2
3
4
5
6
7
8
9
#include<stdio.h>
intmain()
{
inta,b,c;
scanf("%d,%d",&a,&b);
for(;a<b;)
c=a,a=b,b=c;
printf("由大到小排序:%d,%d",a,b);
}
(4)条件表达式被省略得只剩下“;”空语句时,中间循环体或末尾循环体带有跳出语句时的模型: [2-3]
示例:
1
2
3
4
5
6
7
8
9
#include<stdio.h>
intmain()
{
inta,b,c;
scanf("%d,%d",&a,&b);
for(c=a;;){break;}
if(a<b)a=b,b=c;
printf("由大到小排排序:%d,%d",a,b);
}
(3)注意事项
1.for循环中的变量可以是一个也可以是多个。
2.for循环中语句可以为语句体, 语句体外加大括号"{}"将参加循环的语句括起来。
3. for循环中的"单次表达式"、"条件表达式"和"循环体语句"都是选择项, 即可以缺省成只剩下“;”的空语句,。
for循环其他用法
1. for循环可以有多层嵌套。示例:
1
2
3
4
5
6
7
8
9
10
11
#include<stdio.h>
intmain(void)
{
inti,j,k;
printf("ijk\n");
for(i=0;i<2;i++)
for(j=0;j<2;j++)
for(k=0;k<2;k++)
printf("%d%d%d\n",i,j,k);
return0;
}
输出结果为: i j k 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
2. for循环中的变量生存周期为一次循环迭代。
1
2
3
4
5
6
7
8
9
10
11
#include<stdio.h>
intmain(void)
{
inti;
for(i=0;i<9;i=i+1)
{
inta=i;
printf("%d\n",a);
}
return0;
}
C语句中变量必须声明在前才能使用,在定义语句之前使用变量是不合法的。 [4]
for循环和while的功能比较
一、循环的结构不同
for循环的表达式为:
for(单次表达式;条件表达式;末尾循环体)
{
中间循环体;
}
while循环的表达式为:while(表达式){循环体}[5]
二、执行条件的判断方式不同
for循环执行末尾循环体后将再次进行条件判断,若条件还成立,则继续重复上述循环,当条件不成立时则跳出当下for循环。
while循环当满足条件时进入循环,进入循环后,当条件不满足时,执行完循环体内全部语句后再跳出,而不是立即跳出循环。
三、语法不同
for循环的语法为:for (变量 = 开始值;变量 <= 结束值;变量 = 变量 + 步进值) {需执行的代码 }。
while循环的语法为:while (<条件>) {需执行的代码 }。 [1]