4.4 for结构
for语句以三段式作为其标志,可能是用得最多的循环语句。
for语句语法:
for(循环变量定义;条件;循环变量变化)
语句;
for语句本质上和while语句一样,
for三段在具体执行的是这样的:
(1)第一段通常是定义循环变量并给循环变量赋初值,(可以定义多个,具体下面有详述)。第一段只在循环开始的时候执行一次,之后循环不会再执行
(2)第二段是循环条件,必须是布尔值。条件成立执行循环体的代码。
(3)第三段是循环变量递增或递减。每次执行完循环体的代码就运行一次第三段,然后去测试第二段的条件是否成立。
下面这段代码将打印1到100:
public static void main(String[]args){
for(int i=1;i <= 100;i++)
System.out.println(i);
}
(4)for语句的三段式,任意一段都可以是空的,但是他们之间的分号不能省略。例如这些都是合法的写法:
//省略第二段
for(int i=0;;i++){
}
//省略第三段
for(int i=0;i < 10;){
}
//三段都省略
for(;;){
}
//省略第一和第三段,这个和while没区别了
for(;i < 10;){
}
for的格式使得写代码的人,不会忘记写循环变量的递增或递减,还有一个就是循环变量定义在for内部,这样for之外是无法读取这个循环变量的,因为任何变量都只在它所处的第一个大括号内有效。
如果后续的代码,还需要用到这个循环变量,那么循环变量需要定义在for外面,例如下面的代码:
//i定义在for之外,这样for结束后还能读取
int i=0;
for(;i < 10;i++){
//要循环的代码
}
//i在这里还可以继续使用
特别注意:省略第二段的时候,实际上相当于条件永远成立,下面的代码是一个死循环:
public static void main(String[]args){ for(int i=0;;i++){ System.out.println(i); }}练习题
-
阅读代码选择正确答案1.下面的代码试图去打印1到10,如果有错误,指出来: (2分) [选择]A.
B. 打印正确
C. 语法错误
D. 语法正确,不是死循环但也不能正确打印
E. 死循环
for(int i=1,i <= 10,i++) System.out.println(i);2.下面的代码试图去打印1到10,如果有错误,指出来: (2分) [选择]A.
B. 打印正确
C. 语法错误
D. 语法正确,不是死循环但也不能正确打印
E. 死循环int i=1;for(i <= 10){ System.out.println(i); i++;}3.下面的代码试图去打印1到10,如果有错误,指出来: (2分) [选择]A.
B. 打印正确
C. 语法错误
D. 语法正确,不是死循环但也不能正确打印
E. 死循环
for(int i=0;i <= 10){ System.out.println(i); i++;}4.下面的代码试图去打印1到10,如果有错误,指出来: (2分) [选择]A.
B. 打印正确
C. 语法错误
D. 语法正确,不是死循环但也不能正确打印
E. 死循环int i=1;for(;i <= 10;){ System.out.println(i); i++;}5.下面的代码试图去打印1到10,如果有错误,指出来: (2分) [选择]A.
B. 打印正确
C. 语法错误
D. 语法正确,不是死循环但也不能正确打印
E. 死循环int i=1;for(;;){ System.out.println(i); i++;}6.下面的代码试图去打印1到10,如果有错误,指出来: (2分) [选择]A.
B. 打印正确
C. 语法错误
D. 语法正确,不是死循环但也不能正确打印
E. 死循环
int i=1;for(i=100;;i--){ System.out.println(i);}7.下面的代码试图去打印1到10,如果有错误,指出来: (2分) [选择]A.
B. 打印正确
C. 语法错误
D. 语法正确,不是死循环但也不能正确打印
E. 死循环
for(int i=0;i <= 10;i++){ System.out.println(i); i++;}8.下面的代码试图去打印1到10,如果有错误,指出来: (2分) [选择]A.
B. 打印正确
C. 语法错误
D. 语法正确,不是死循环但也不能正确打印
E. 死循环
for(int i;i <= 10;i++){ System.out.println(i);} -
填空1.填空完成代码 (4分) [编程填空]下面的代码用for循环打印1到16,补齐代码使功能完善
public static void main(String[]args){ for( ){ System.out.println(i); }}2.阅读代码 (2分) [填空]下面的代码会打印3.阅读代码 (2分) [填空]下面的代码会打印