我正在使用递归线性搜索算法。即使if条件为true,它也始终返回null。如果我不将其设置为null,则会出现错误。我不能仅仅弄清楚我该如何做得正确。感谢您的帮助
private String findMinimumPricedHelper(String name, IMedia[] treeArray, int index) {
if (some conditions)
return treeArray[index].toString();
else
findMinimumPricedHelper(name, treeArray, index+1);
return null;
}
我期望值treeArray[index].toString()
,但它返回null
答案 0 :(得分:3)
您将忽略递归调用的值。试试:
UILabel
答案 1 :(得分:1)
就像@Eran所说的那样,您错过了递归调用的返回,但是您还应该考虑条件永远不为真并且到达数组末尾的情况。如果从不满足条件,则会崩溃。
答案 2 :(得分:1)
index
小于零,treeArray
为空。所以理想的代码应该是:
private String findMinimumPricedHelper(String name, IMedia[] treeArray, int index) throws IllegalArgumentException {
if (treeArray == null || index < 0) throw new IllegalArgumentException("parameters are not correct");
if (index >= treeArray.length) return null;
if(some conditions) return treeArray[index].toString();
return findMinimumPricedHelper(name, treeArray, index+1);
}