递归检查数组是否包含0(java)
如果数组中至少有一个0,我的方法应该返回true,否则返回false。但是,我的代码没有编译。为什么它抱怨我的方法没有返回布尔值?有人能帮忙吗?谢谢递归检查数组是否包含0(java),java,recursion,Java,Recursion,如果数组中至少有一个0,我的方法应该返回true,否则返回false。但是,我的代码没有编译。为什么它抱怨我的方法没有返回布尔值?有人能帮忙吗?谢谢 public boolean containsZero(int [] array, int i) { if (i < array.length) { if (array[i] == 0) return true; else
public boolean containsZero(int [] array, int i)
{
if (i < array.length)
{
if (array[i] == 0)
return true;
else
return containsZero(array, (i+1));
}
}
它抱怨你的方法不返回布尔值,因为如果i>=array.length,你的方法不返回任何值。它抱怨你的方法不返回布尔值,因为如果i>=array.length,你的方法不返回任何值。你非常接近,想象一下,如果外部条件为假,会发生什么
public boolean containsZero(int[] array, int i)
{
if (i < array.length)
{
if (array[i] == 0)
return true;
else
return containsZero(array, i+1);
}
return false;
}
你很接近,想象一下如果你的外部条件是假的会发生什么
public boolean containsZero(int[] array, int i)
{
if (i < array.length)
{
if (array[i] == 0)
return true;
else
return containsZero(array, i+1);
}
return false;
}
你错过了一个基本案例。如果您的i等于array.length,您将希望返回false,因为您从未得到0
if (i < array.length)
{
if (array[i] == 0)
return true;
else
return containsZero(array, (i+1));
}
else
{
return false;
}
你错过了一个基本案例。如果您的i等于array.length,您将希望返回false,因为您从未得到0
if (i < array.length)
{
if (array[i] == 0)
return true;
else
return containsZero(array, (i+1));
}
else
{
return false;
}