【发布时间】:2011-09-13 00:42:09
【问题描述】:
我需要创建一个名为 isMemeber 的递归布尔方法。该方法应该只接受两个参数:一个数组和一个值。如果在数组中找到该值,则该方法应返回 true,如果在数组中未找到该值,则该方法应返回 false。
我认为基本情况是传递的数组为空,但我需要递归情况的帮助:
public static boolean isMember(int[] array, int value)
{
if(array.length==0){
return false;
}else{
return isMember(???);
}
}
这是使用位置变量时的样子:
public static boolean isMember(int[] array, int value, int position)
{
if (position > -1)
{
if (array[position] == value)
{
return true;
}
else
{
return isMember(array, value, position - 1);
}
}
return false;
}
【问题讨论】:
-
为什么需要递归?如果是作业,请标记它。
-
是的,这是一个家庭作业。你有什么解决办法吗?
-
我没有看到递归方面,因为数组参数是一个平面数组;没有深度或子成员。
-
肯定不打算使用涉及复制全部或部分数组的解决方案? (它在某些语言中是惯用的,但在 Java 中不是。)
-
我知道在这种情况下使用递归是无效的,但这个练习是 Tony Gaddis 的“从 Java 开始,早期对象”中递归章节的一部分(第 938 页,前 2)。
标签: java arrays recursion boolean