局部变量初始化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