局部变量初始化Java
在这里,如果我删除局部变量初始化Java,java,Java,在这里,如果我删除else部分,则编译错误显示为: public class LocalVariables { static public void main(String args[]){ int var; if(args.length > 0){ var = 10; } else{ var = 20; } System.out
else
部分,则编译错误显示为:
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
part,如何初始化局部变量值。如果删除else块,则var
if(args.length如下所示:当代码中的if
条件未满足时,会发生什么情况?出现错误的原因如下:
局部变量var可能尚未初始化
是因为如果条件为false
您确实没有初始化var
,是吗
另一方面,else
用于确保在现有代码中为您进行初始化。在执行main
方法时,您肯定没有提供args
参数。因此args.length>0
返回false。这不应该是公共静态void main
而不是stat吗ic public void main
?@px06字面上没有区别。你可以按照你喜欢的顺序声明修饰符。好吧,如果没有其他修饰符,当args.length!=10
时,var
的值是多少?你认为该值来自哪里?@AndyTurner正确,除此之外,我看不出有任何问题it@px06阅读问题tion.OP说如果他删除else
,就会出现问题。你试过运行代码吗?这个答案与OP的问题无关。OP问的是编译问题,而不是运行时问题。如果(args.length当不满足IF的条件时,输出为20。告诉我else part如何确保初始化为什么不使用IF part?一旦删除else
part和args.length<=0
。您能告诉我代码中var
的值是多少吗?
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The local variable var may not have been initialized