我在下面的代码中有关于变量范围的问题。有人可以快速概述为什么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);
}
}
答案 0 :(得分:2)
变量output
仅 在包含的代码块中,如果你想要的话,它当前似乎在if
块和else
块内访问output
和if
块之外的变量else
,您需要在if
块之前定义它。
答案 1 :(得分:1)
本地变量
局部变量是在方法或构造函数(不在标题中)中声明的变量。范围和寿命仅限于方法本身。
除了方法中定义的局部变量之外,我们还有以块为单位定义的变量,例如: if块和else块。在这种情况下,范围受到块本身的约束。