关于for循环的一个小问题

  有如下程序:

package com.lk.B;

public class Test5 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        for(int i=0;i<10;i++)
            Integer k = new Integer(i);
            System.out.println("Hello World");
    }

}

  可能有很多人认为这是对的,其实你们错了,这个程序编译是不通过的,原因在于Integer k = new Integer(i)这句话。for循环可以不使用{}的,但是仅限于执行语句(其中不包括变量生命语句),由于这段代码中Integer k的作用范围在整个Main方法中,这样就造成了变量重复定义的错误。所以,在编译时会出错。若要改正,只要加上一对花括号,让变量声明在块内就可以。如下:

 

 1 package com.lk.B;
 2 
 3 public class Test5 {
 4 
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         for(int i=0;i<10;i++){
 8             Integer k = new Integer(i);
 9         }
10         System.out.println("Hello World");
11     }
12 
13 }

 

posted @ 2015-04-11 13:16  luankun0214  阅读(154)  评论(0编辑  收藏  举报