写在前面:本人是借助两本参考书自学的,其中部分例子和语句均是来自参考书。第一本:《Java 编程指南》,[美] Budi Kurniawan 著,闫斌 贺莲 译。第二本:《第一行代码 Java 视频讲解版》,李兴华 马云涛 著
for 语句
for ( init ; booleanExpression ; update ) {
statement(s)
}
for 语句中,init是初始化表达式,判断条件为返回值是booleanExpression 数据类型的表达式,若为true,则先执行statement(s),后执行update,再次进行条件判断;若为false,则结束当前循环 for 语句块,init 、booleanExpression 和update 都是可选的(可有可无)。
终止for 语句的几种情况:
- 判断结果为false
- for 语句中有break或者continue 语句
- 运行错误
例子:
for ( int i = 0; i < 7; i += 2 ) {
System.out.println(i);
}
输出结果为 :
0
2
4
6
一、关于初始化表达式 “ int = 0 ”
这段代码里,“ int i = 0 ” 是初始化表达式,由于 i 是在 for 语句内定义的变量,故 i 在for语句之外不可直接引用,若要引用,只能重新定义或者将其放在 for 语句之外(初始化表达式可有可无)。
例如:
上图中第四行变量 i 在for语句中被定义,故第七行 for 语句之外的输出引用 i 出错,提示 “ i cannot be resolved to a variable ”( i 是未定义变量)
上图中,虽然第四行变量 i 在for语句中被定义,但在 for 语句之外第七行 i 被重新定义,故无错,第八行输出结果为 7 。
上图中,变量 i 在第四行被定义,在整个代码中都可被引用,而 for 语句中的初始化表达式则省略掉(注意 ‘ ;’ 不能省略)。
二、关于update语句
如前所述,update 也是可有可无的,当没有 update 语句时,需要在 for 语句块的结尾添加循环语句
例如:
public class firstestfor {
public static void main(String[] args) {
int k = 11;
for ( ; k < 13; ) {
System.out.println(k);
k ++;
}
}
}
上述代码将 “ k ++ ”循环语句放在了statement中是一样的结果。
三、关于判断条件
当判断条件省略时,for 语句不能自行结束循环,故必须采用if 语句嵌套break(或者continue)语句结束循环。
例如:
public class firstestfor {
public static void main(String[] args) {
int x = 21;
for ( ; ; ) {
System.out.println(x);
x ++;
if ( x > 25) {
break;
}
}
}
}