public class A48 {
  public A48() {
  }
  
 public static void main(String args[]){
   for(int i=0;i<3;i++){
   System.out.print(i);
   }
   System.out.print(i);
 }
}
  如果没有出错,是不是输出0123.
   主要是我想知道为什么会编译错误.

解决方案 »

  1.   

    变量 i 为局部变量,只用于for 语句
      

  2.   

    public static void main(String args[]){
       int i=0;
    for(;i<3;i++){
       System.out.print(i);
       }
       System.out.print(i);
     }
    }
    这样就行了
      

  3.   

    public class Test { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int i = 5;
    for(;i<10;i++){
    System.out.println(i);
    }
    System.out.println(i);
    }}
      

  4.   

    i这个变量,只对for循环有效,只它地方是不可用的.还有,知道了,就不要光说啊,记得结贴啊
      

  5.   

    你的i是在for循环里面定义的,因此作用域应该只是在循环里面,出了循环,i就无效了,编译器是找不到这个变量的!
      

  6.   

    正确的话也不能输出3阿
    i<3
    012false
      

  7.   

    i在for循环内有效,之外就无效了,编译会出错。
    取消第二个输出,会打出012