众所周知,定义局部变量时必须对其进行初始化,也就是赋值。那么接下来我有3个小程序,都是关于局部变量初始化的。
-----------------------------------------------------------------------------------------------------------------
第一个程序是正确的:
public class A
{
public static void main(String[] args)
{int a ;
a= 1; //对局部变量r定义并赋值,即初始化
}
}
第二个程序也是正确的:
public class A
{
public static void main(String[] args)
{int a; //定义一个局部变量a
switch (2)
{
case 1: a = 1;
break;
case 2: a = 2;
break;
} //整个switch中是对局部变量进行赋值,即初始化
}
}
第三个程序存在错误:
public class A
{
public static void main(String[] args)
{int a; //定义一个局部变量a
switch (2)
{
case 1: a = 1;
break;
case 2: a = 2;
break;
} //整个switch中是对局部变量进行赋值,即初始化
System.out.println(a); //这里多了一个对局部变量a的操作就会报一个“a尚未初始化”的错误
}
}
-----------------------------------------------------------------------------------------------------------------
请问各位大神,程序3和程序2一样对局部变量进行了初始化,为什么还会报出a没有初始化??????
-----------------------------------------------------------------------------------------------------------------
第一个程序是正确的:
public class A
{
public static void main(String[] args)
{int a ;
a= 1; //对局部变量r定义并赋值,即初始化
}
}
第二个程序也是正确的:
public class A
{
public static void main(String[] args)
{int a; //定义一个局部变量a
switch (2)
{
case 1: a = 1;
break;
case 2: a = 2;
break;
} //整个switch中是对局部变量进行赋值,即初始化
}
}
第三个程序存在错误:
public class A
{
public static void main(String[] args)
{int a; //定义一个局部变量a
switch (2)
{
case 1: a = 1;
break;
case 2: a = 2;
break;
} //整个switch中是对局部变量进行赋值,即初始化
System.out.println(a); //这里多了一个对局部变量a的操作就会报一个“a尚未初始化”的错误
}
}
-----------------------------------------------------------------------------------------------------------------
请问各位大神,程序3和程序2一样对局部变量进行了初始化,为什么还会报出a没有初始化??????