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

时间:2013-12-06 02:34:42

标签: java return

我试图在我的代码末尾返回我的布尔变量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 

2 个答案:

答案 0 :(得分:5)

localFound未在return声明的范围内定义。它仅存在于您的if声明中。

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

答案 1 :(得分:1)

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