局部变量初始化Java

时间:2016-12-02 09:21:11

标签: java

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部分,如何初始化局部变量值。

3 个答案:

答案 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。