我试图在我的代码末尾返回我的布尔变量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
答案 0 :(得分:5)
localFound
未在return
声明的范围内定义。它仅存在于您的if
声明中。
将声明移到if
语句之外,并将其初始化为某个默认值,例如false
。
答案 1 :(得分:1)
localFound 变量在 if 语句中声明,因此,在该语句之外不可见。尝试在 if 语句之前(在它之外)声明它,然后你将得到代码编译。