如果括号内部分配变量并在外部使用它们

时间:2014-10-20 09:37:27

标签: java

我在if之外声明了变量,并且取决于在if中分配的各种事物。问题是,在调试模式下检查显示在它离开if块之后,变量由于某种原因返回到未初始化。

代码看起来像这样:

function() {
    double x;
    if (something happens) {
        x = some_func();
    }
}

some_func()有效,当我在if括号中放置一个断点时,x显示的值正确,但一旦在外面,它就会回到未初始化状态(如前所述)。我有什么想法吗?

1 个答案:

答案 0 :(得分:0)

根据您发布的伪代码,您需要做的就是在声明时或打印前初始化variable x,因为您在条件语句中初始化变量并且我们知道在Java中使用之前需要初始化所有局部变量你得到变量未初始化的错误。

例如我们有: -

public class HelloWorld{
    public static int check()
    {
        int c=10;
        return c;
    }
     public static void main(String []args){
        int a=1,x=5;
        if (a==1) {
        x = check();
        }
        System.out.println("hello World"+x);
     }
}

在此示例中,如果从上面的示例中删除变量x的初始化部分,则会获得变量未初始化的错误,否则它将正常工作。

保持伪代码的问题的简单解决方案是您可以在声明时初始化variable x