您的位置:首页 > 职场人生

【疯狂Java_突破程序员基本功的16课】charpt6 流程控制的陷阱

2012-11-24 23:53 260 查看
6.4.2 省略花括号的危险

下面代码中的循环题只有一行代码,所以尝试省略该循环体的或括号

package com.qunar.bigInteger;

class Cat {
private static long instancecCount = 0;

public Cat() {
System.out.println("执行无参的构造器");
instancecCount++;
}

public static long getInstanceCount() {
return instancecCount;
}
}

public class CatTest {
public static void main(String[] args) {
//循环创建10个Cat对象
for(int i=0;i<10;i++)
Cat cat = new Cat();
System.out.println(Cat.getInstanceCount());
}
}


改程序看上去没有什么问题,但是编译时却有以下的错误的提示:

CatTest.java:20: 不是语句
Cat cat = new Cat();
^
CatTest.java:20: 需要 ';'
Cat cat = new Cat();
^
2 错误


这是因为Java规定:如果程序要使用循环来重复定义局部变量,这条局部变量定义语句必须放在花括号内才有效。因此将上面程序中的CatTest修改为以下代码即可:

public class CatTest {
public static void main(String[] args) {
// 循环创建10个Cat对象
for (int i = 0; i < 10; i++) {
Cat cat = new Cat();
}
System.out.println(Cat.getInstanceCount());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: