Java输出变量范围问题

时间:2017-04-30 22:36:27

标签: java variables scope

我在下面的代码中有关于变量范围的问题。有人可以快速概述为什么java“打印时”无法找到输出的符号“?谢谢。

class Main
{
    public static void main(String[] args) {
        String text = "hello";
        if (text.indexOf(" ") == -1) //if a space doesn't exist
        {
            String output = "one word";
        }
        else
        {
            String output = "more than one word";
        }
        System.out.println(output);
    }
}

2 个答案:

答案 0 :(得分:2)

变量output 在包含的代码块中,如果你想要的话,它当前似乎在if块和else块内访问outputif块之外的变量else,您需要在if块之前定义它。

答案 1 :(得分:1)

本地变量

局部变量是在方法或构造函数(不在标题中)中声明的变量。范围和寿命仅限于方法本身。

除了方法中定义的局部变量之外,我们还有以块为单位定义的变量,例如: if块和else块。在这种情况下,范围受到块本身的约束。