日期:2014-05-20  浏览次数:20641 次

错在哪里?
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.
      主要是我想知道为什么会编译错误.

------解决方案--------------------
变量 i 为局部变量,只用于for 语句
------解决方案--------------------
抱什么错?
------解决方案--------------------
public static void main(String args[]){
int i=0;
for(;i <3;i++){
System.out.print(i);
}
System.out.print(i);
}
}
这样就行了
------解决方案--------------------
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);
}

}
------解决方案--------------------
i这个变量,只对for循环有效,只它地方是不可用的.

还有,知道了,就不要光说啊,记得结贴啊
------解决方案--------------------
你的i是在for循环里面定义的,因此作用域应该只是在循环里面,出了循环,i就无效了,编译器是找不到这个变量的!
------解决方案--------------------
变量作用域的问题
------解决方案--------------------
正确的话也不能输出3阿
i <3
012false
------解决方案--------------------
i在for循环内有效,之外就无效了,编译会出错。
取消第二个输出,会打出012