2.3.1 for循环迭代语句
for循环语句的目的是迭代遍历代码,主要由初始化部分、表达式部分和迭代部分组成。只要变量在for语句之前声明,初始化部分就不需要声明这个变量。所以,int x=0;和x=0;在初始化部分都是可接受的。但是,要知道,一旦for循环终止,在for循环初始化部分声明的变量的作用域也会结束。for循环语句中的表达式的计算值必须是一个boolean类型的值。迭代部分,也称为更新部分,提供了一种允许迭代发生的机制,一个基本的更新部分可以表示为i++;。
下面是for语句的一般用法:
for ( initialization; expression; iteration) {
// 语句序列
}
下面是一个基本的for循环的示例,其中初始化变量是在for循环的语句的外面声明的:
int m;
for(m=1; m<5; m++) {
System.out.print("Marker " + m + ", ");
}
System.out.print("Last Marker " + m + "\n");
$ Marker 1, Marker 2, Marker 3, Marker 4, Last Marker 5
下面是一个类似的示例,但是变量是在for循环的内部声明的:
for(intm=1; m<5; m++) {
System.out.print("Marker " + m + ", ");
}
System.out.print("Last Marker " + m + "\n");
在for循环内声明初始化变量是允许的,并且是常用的方法。但是,一旦退出循环,便不能使用这个变量。下列代码将导致编译错误:
for(intm=1; m<5; m++) {
System.out.print("Marker " + m + ", ");
}
System.out.print("Last Marker " + m + "\n"); // m 超出了作用域范围
# Error: variable m not found in class [ClassName].
考试内幕:
使用编译器发现边界情况
考试设计者并不满足于简单地检验你的Java基础知识。他们花费时间于边界情况,并使用这种轻微的方式修改代码结构,使它看似正确,但实际是错误的。当你完成本书的示例时,花时间来修改一点东西,故意引入错误,看一看编译器如何反应。像编译器那样思考的能力将会帮助你在考试中取得高分。
第三方开发的Java开发工具包可以定义他们自己的编译器错误消息文本。他们可能会尝试模式化Oracle JDK提供的消息,有时会仔细处理以使消息更精确。考虑使用***的Oracle JDK编译器和集成开发环境(IDE)提供的编译器(如特定的Eclipse SDK),产生编译错误。比较两者的异同。
【责任编辑:book TEL:(010)68476606】
点赞 0