为什么我在编译时在java程序中遇到“无法找到符号”错误?

我试图在我的代码结束时返回我的布尔变量localFound的值但是当我编译时,我得到一个错误,说它无法找到符号。 我知道这是一个处理变量范围的错误,但我不知道如何解决它。 如何让我的程序返回正确的值? 谢谢。

public static boolean addIfNotEmpty(DvdTreeNode root, String movieToCommand) { if (root == null) { return false; } addIfNotEmpty(root.getRight(), movieToCommand); if (root.getItem().getTitle().equalsIgnoreCase(movieToCommand)) { root.getItem().addCopy(); System.out.println("You have added another copy of \"" + movieToCommand + "\" to the inventory."); boolean localFound; localFound = true; } addIfNotEmpty(root.getLeft(), movieToCommand); return localFound; } // end addIfNotEmpty 

localFound未在return语句的范围内定义。 它只存在于if语句中。

将声明移到if语句之外,并将其初始化为某个默认值,例如false

localFound变量在if语句中声明,因此,在该语句之外不可见。 尝试在if语句之前声明它(在它之外)并且你将获得代码编译。