错在哪里?
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