{
int i=0;
i++;
}
是一个代码块,你所定义的变量是个局部变量。局部变量的特点是只在局部有效。当i 超过{}后就不再有效,而后面的代码中
method(array,i);
System.out.println(array[0]+" "+i);
又用到 i 。此时i已经不存在了。
改正后的代码可以如下:
第一种方法:
public class MaoPao {
public static void main(String[] args){
int i=0;
i++;
int[] array = new int[1];
method(array,i);
System.out.println(array[0]+" "+i);
}
public static void method(int[] array,int i){
array[0] = 1;
i = 1;
}
}
第二种方法:
public class MaoPao {
public static void main(String[] args){
int[] array = new int[1];
{
int i=0;
i++;
method(array,i);
System.out.println(array[0]+" "+i);
}
}
public static void method(int[] array,int i){
array[0] = 1;
i = 1;
}
}
当然还有其他的,只要理解基础原理就行了:局部变量和全局变量的作用域问题。
|