每次我运行这段代码(当然不是全部)时,Java 都会到达 println 部分,但不会返回 true 而是 false。所以它肯定会在数组中找到正确的元素,但不会返回它应该返回的位置。希望有人能阻止我...
Token[] ps = new Token[lengthOfArray];
//main function and function call etc
public boolean find(Token token, int index) {
if (index < ps.length) {
if (ps[index] == token) {
System.out.println("Searching at " + index);
return true;
} else {
find(token, index++);
}
}
return false;
}
最佳答案
您正在递归地调用您的方法find
。这样,find 的内部调用可能返回 true,但外部 find 将返回 false。
您可能应该将 find(token, index++)
的递归调用更改为
return find(token, index++);
关于Java 忽略 return 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48114341/