如果数组中至少有一个0,则我的方法应返回true,否则返回false。但是我的代码没有编译。为什么抱怨我的方法没有返回布尔值?有人可以帮忙吗?感谢
public boolean containsZero(int [] array, int i)
{
if (i < array.length)
{
if (array[i] == 0)
return true;
else
return containsZero(array, (i+1));
}
}
答案 0 :(得分:5)
你非常接近,想象如果你的外if-condition
是假的会发生什么?
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;
}
答案 1 :(得分:1)
抱怨您的方法没有返回布尔值,因为如果i >= array.length
您的方法没有返回任何内容。
答案 2 :(得分:0)
您缺少一个基本案例。如果你的i等于array.length你会想要返回false,因为你从未得到过0
if (i < array.length)
{
if (array[i] == 0)
return true;
else
return containsZero(array, (i+1));
}
else
{
return false;
}