【示例】逗号运算符
public class Test{
public static void main (String [] args) {
for (int i = 1, j = i + 10; i < 5; i++, j = i*2){
System.out.println ("i=" + i + " j= " + j) ;
}
}
}
输出:i= 1 j= 11
i= 2 j= 4
i= 3 j= 6
i= 4 j= 8
无论在初始化还是在步进部分,语句都是顺序执行的。
尽管初始化部分可设置任意数量的定义,但都属于同一类型。
约定:只在for语句的控制表达式中写入与循环变量初始化,条件判断和迭代因子相关的表达式。
初始化部分、条件判断部分和迭代因子可以为空语句,但必须以“;”分开,如示例所示。
【示例】无限循环
public class Test{
public static void main (String [] args) {
for( ; ; ){
//无限循环:相当于 while(true)
System.out.println("北京尚学堂”);
}
}
}
编译器将while(true)与for(;;)看作同一回事,都指的是无限循环。
在for语句的初始化部分声明的变量,其作用域为整个for循环体,不能在循环外部使用该变量。如示例所示。
【示例】初始化变量的作用域
public class Test{
public static void main (String [] args) {
for (int i = 1; i < 10; i++) {
System.out.println (i+". ") ;
}
//编译相误,无法访问在for描环中定义的交量i
System.out.println (i) ;
}
}