关于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 }