public class LocalVariables {
static public void main(String args[]){
int var;
if(args.length > 0){
var = 10;
}
else{
var = 20;
}
System.out.println(var);
}
}
如果我删除else
部分,则显示编译错误为:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The local variable var may not have been initialized
解释如果我使用else
部分,如何初始化局部变量值。
答案 0 :(得分:2)
这样看当代码中的if
条件不满足时会发生什么?你会收到错误说明的原因:
本地变量 var 可能尚未初始化
是因为如果条件是false
,你真的没有var
初始化,是吗?
另一方面,else
的目的是确保为您准备现有代码的初始化。
答案 1 :(得分:1)
如果您删除其他阻止,那么var
if(args.length<0)
的价值是多少?编译器不知道这一点。所以它显示你的错误。您必须在声明期间初始化var
,或者您需要在if和else块中初始化。
答案 2 :(得分:-1)
执行main
方法时,您肯定不提供args
参数。所以args.length > 0
返回false。