1)for循环语句的一般形式:
for(表达式1;表达式2;表达3)
{ 循环体语句; }
表达式1 通常用来给循环变量赋初值,一般是赋值表达式。也允许在for语句外给循环变量赋初值,此时可以省略该表达式。
表达式2 通常是循环条件,一般为关系表达式或逻辑表达式。
表达式3 通常可用来修改循环变量的值,一般是赋值语句。
这三个表达式都可以是逗号表达式,即每个表达式都可由多个表达式组成。三个表达式都是任选项,都可以省略。
因此for循环语句的形式还可以表示为:
for(循环变量赋初值;循环条件;循环变量增值)
{ 循环体语句; }
(2)for循环语句的执行顺序:
一般形式中的“语句”即为循环体语句。for语句的语义是:
a.首先计算表达式1的值。
b.再计算表达式2的值,若值为真(非0)则执行循环体一次, 否则跳出循环。
c.然后再计算表达式3的值,转回第2步重复执行。在整个for循环过程中,表达式1只计算一次,表达式2和表达式,3则可能计算多次。循环体可能多次执行,也可能一次都不执行。for 语句的执行过程如图所示。
注意:
(1).for循环中语句可以为语句体,但要用{ }将参加循环的语句括起来。
(2).for循环中的初始化、条件表达式和增量都是选择项,即可以缺省,但;不能缺省。省略了初始化,表示不对循环控制变量赋初值。省略了条件表达式,则不做其它处理时便成为死循环。省略了增量,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。
(3).for循环可以有多层嵌套。
Fo
For循环流程图
(3)for循环的用法实例:
例5-7 编程计算100至200自然数之和。
方法一:
#include
main()
{
int i,sum=0;
for(i=100 ; i<=200 ; i++)
sum +=i ; sum=sum+i
printf(“sum=%d\n”,sum);
}
方法二:
#include
main()
{
int i=100,sum=0; /*先给循环变量赋初值*/
for( ; i<=200 ; i++) /*省略表达式1*/
sum +=i;
printf(“sum=%d\n”,sum);
}
方法三:
#include
main()
{
int i=100,sum=0; /*先给循环变量赋初值*/
for( ; i<=200 ; ) /*省略表达式1和表达式3*/
sum += i;
i++; /*求和的同时递增循环变量*/
printf(“sum=%d\n”,sum);
}
方法四:
#include
main()
{
int i=100,sum=0; /*先给循环变量赋初值*/
for( ; ; ) /*省略所有表达式*/
{
sum += i++; /*求和的同时递增循环变量*/
if(i>200) /*使用if语句*/
break;
}
printf(“sum=%d\n”,sum);
}
方法五:
#include
main()
{
int i,sum;
for(i=100,sum=0;i<=200; sum +=i,i++)
; /*空语句,循环体内语句写到了上面的表达式内*/
printf(“sum=%d\n”,sum);
}
程序分析:上述五种不同方法都是用来求100至200自然数之和的,从不同的方法中可以看出for循环语句在使用中的灵活性。在方法4中for关键字后面的圆括号中的三个表达式都被省略,他们出现在for循环前货循环体内,但是圆括号内的两个分号不能省略。在循环体内通过满足一定条件,执行break语句来退出循环。在方法5中,循环体是一个空语句,该空语句不能省略,该循环语句要做的事项,在三个表达式内完成了。