for语句
格式
for ( 表达式1;表达式2;表达式3 )
循环体;
for语句结构说明
执行过程
1.先执行 初始化表达式(表达式1)。
2.执行 判断表达式(表达式2),若其值为真(true),则执行循环体,然后继续第 ③ 步;若值为假(false),则转到第 ⑤ 步。
3.执行递增(递减)表达式(表达式3) 。
4.转到第 ② 步继续执行 。
5.循环结束,执行for语句下面的一个语句。
案例:求1~10内的所有奇数之和:
int sum=0, i ;for ( i = 1; i<=10; i++)if ( i%2==1 ) sum+=i ;
注意点
(1)如果初始化表达式定义了一个初始化变量,那么该变量的作用域
是从变量定义处开始到循环结束,例如:
for(int i = 1; i <= 10; i++)//初始化表达式定义了初始化变量i = 1
{ ... }
// 变量i 在这里已经不再可用
(2)如果想在循环体外部使用循环变量,应在for语句前就声明,例如:
int i = 1; // 定义循环计数器变量 i = 1
for( ; i <= 10; i++)
{ ... }
// 变量i 在这里还可以使用
(3)在同级别的不同for循环中,可以定义同名循环变量,例如:
for( int i = 1; i <= 10; i++) //初始化表达式定义了初始化变量 i = 1
{ ... }
//第一个for循环变量 i 在这里已经消失了
for( int i = 1; i <= 20; i++) //i 在第2个for循环语句中可以被重新定义
(4)for语句各表达式中可以使用逗号运算符以增强循环控制功能,例如:
for ( int i = 1, j = i+1; i <=3; i++, j = i*2)
System.out.println(" i = " + i +"; j = " + j);
(5)无限循环,若表达式2为空,则当程序进入到循环内时,由于没有判断表达式
来结束正常的循环,使程序陷入无限循环(死循环),例如:
for (int i = 1 ; ; i++) //死循环
System.out.println("i = " + i);
(6)for循环与while循环是等价的,例如:
for ( int s=0,i=1; i<=3; i++)
s+=i ;
完全等价于: int s=0, i=1;
while (i<=3)
{ s+=i ; i++; }