尝试查看数组并希望如果name在数组中则返回true,否则返回false。
public boolean ifInArray(String name)
{
for ( Dog breed: breeds) {
if (breed.equals(name)) {
return true;
} else {
return false;
}
}
}
答案 0 :(得分:5)
功能必须具有返回值的所有可能性。想想如果for循环在某些条件下没有执行那么会发生什么?所以你给所有可能性的回报值
public boolean ifInArray(String name)
{
for ( Dog breed: breeds) {
if (breed.equals(name)) {
return true;
} else {
return false;
}
}
return false;
}
答案 1 :(得分:3)
您只查看数组'品种'中的第一个条目,并立即返回true / false值。您需要迭代每个元素,并且只有在找到匹配项时才返回true。否则,返回false。
public boolean ifInArray(String name)
{
for ( Dog breed: breeds) {
if (breed.equals(name))
return true;
}
return false;
}
答案 2 :(得分:2)
删除else块并在循环结束后放置return false
。如果找到一个值,它将从循环内部返回true。如果没有找到任何内容,它将在循环结束后返回false。
如果第一个品种不匹配,您当前的实施将返回false,而不是检查所有品种。
答案 3 :(得分:0)
您可以将boolean存储在变量中,只返回变量。
public boolean ifInArray(String name)
{
Boolean result = null;
for ( Dog breed: breeds ) {
if (breed.equals(name)) {
result = true;
} else {
result = false;
}
}
return result;
}
答案 4 :(得分:0)
你的内部返回if,因此它无法直接访问该方法。必须有一个默认值,特别是因为你有内部for循环。考虑字符串为空的情况,该方法将无法返回。
按以下方式编写您的方法:
public boolean ifInArray(String name)
{
for ( Dog breed: breeds) {
if (breed.equals(name)) {
return true;
} else {
return false;
}
}
return false;
}