java 初始化变量

来源:百度知道 编辑:UC知道 时间:2024/05/15 02:59:57
public class test {
public static void main(String[] args) {
int min;
int temp=0,arr1[]={1,2,3,4,8,7,6,5};

for(int j=1;j<arr1.length;j++)
{
if(arr1[temp]>arr1[j])
{
min=arr1[j];
temp=j;
}
else
{
min=arr1[temp];
}
}

System.out.println(min);
}
}
public class test {
public static void main(String[] args) {
int min;
int arr[]={1,2,3};
min=arr[0];
System.out.print(min);
}
}
为什么这样的程序就可以啊,min也没有初始化啊?
不要给我说min=arr[0];是给赋值的,那么原来的那个程序也有这样的语句啊~~~也赋值了啊??

public class test {
public static void main(String[] args) {
int min=0;//给min赋初值0
int temp=0,arr1[]={1,2,3,4,8,7,6,5};

for(int j=1;j<arr1.length;j++)
{
if(arr1[temp]>arr1[j])
{
min=arr1[j];
temp=j;
}
else
{
min=arr1[temp];
}
}

System.out.println(min);
}
}

这个不能通过编译
public class Test2 {
public static void main(String[] args) {
int min;
int arr[]={1,2,3};
for(int i=0;i<10;i++)
{
min=arr[0];
}
System.out.print(min);
}
}
你上面的哪个可以
也是bocaicbl说的哪个原因,昨天没仔细看,呵呵!相互学习。

这里的min是个局部变量,必须手动赋值,如果不赋值,编译器会报错。
如果把min声明成实例变量或者静态变量,则编译器会默认给它赋值