【疯狂Java_突破程序员基本功的16课】charpt6 流程控制的陷阱
2012-11-24 23:53
260 查看
6.4.2 省略花括号的危险
下面代码中的循环题只有一行代码,所以尝试省略该循环体的或括号
改程序看上去没有什么问题,但是编译时却有以下的错误的提示:
这是因为Java规定:如果程序要使用循环来重复定义局部变量,这条局部变量定义语句必须放在花括号内才有效。因此将上面程序中的CatTest修改为以下代码即可:
下面代码中的循环题只有一行代码,所以尝试省略该循环体的或括号
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()); } }
相关文章推荐
- 【疯狂Java_突破程序员基本功的16课】charpt5 表达式中的陷阱
- 流程控制与数组——Java疯狂讲义
- 流程控制与数组——Java疯狂讲义
- 疯狂Java笔记:4.1 流程控制
- 【疯狂Java_突破程序员基本功的16课】charpt2 对象与内存控制
- 第四章 流程控制与数组 疯狂 Java 讲义
- 【疯狂Java_突破程序员基本功的16课】charpt7 面向对象的陷阱
- Java流程控制的陷阱——if语句和循环体的陷阱
- [疯狂Java讲义精粹] 第三章|流程控制与数组
- 疯狂JAVA讲义---第四章(上):流程控制和数组
- Java中流程控制语句中的陷阱
- 疯狂JAVA——第四章 流程控制与数组
- 【读书笔记】疯狂java讲义学习(三)—— 流程控制
- 【疯狂Java讲义学习笔记】【流程控制与数组】
- Java流程控制的陷阱——switch语句和标签陷阱
- 黑马程序员——Java基础语法---流程控制语句
- java流程控制语句&if...else
- thinking in java 阅读笔记 第三章 程序控制流程
- Java学习笔记-控制执行流程
- java-控制流程语句