我正在尝试制作一个布尔方法,但它没有认识到我有一个返回语句。我该怎么办?
public boolean isThreeKind( int rankHist[]) {
for (int i=0;i<=13;i++){
if (rankHist[i]>=3){
return true;
}else{
return false;
}
}
}
答案 0 :(得分:2)
您的代码没有意义。如果你总是要在循环中运行一次代码,那么循环是没有意义的。我想你一定是误解了。你想做什么?
答案 1 :(得分:2)
假设该方法只需返回true
或false
,如果它是greater than equal to 3
,
会建议保持简单。
另外,请注意:
循环遍历i=0 to i< rankHist.length
数组包含少而不是 13个元素,您将遇到ArrayOutOfBoundException.
如果它包含的元素超过13个,则输出可能不正确。
public boolean isThreeKind( int rankHist[]) {
for (int i=0;i<rankHist.length;i++){
if (rankHist[i]>=3){
return true;
}
}
return false;
}
答案 2 :(得分:1)
这就是你的代码现在正在做的事情:
public boolean isThreeKind( int rankHist[]) {
return rankHist[0] >= 3;
}
就是这样,我假设这不是你想要做的。因此,如果您告诉我们您实际想要实现的目标,我们可以为您提供更多帮助。
答案 3 :(得分:0)
在java中,你总是要跟踪返回一些方法可以退出的东西。如果它可以在不命中return语句的情况下退出,那么您将看到该错误。
因此,对于您的代码,要修改它并让它看到它,您需要让它说:
public boolean isThreeKind( int rankHist[]) {
for (int i=0;i<=13;i++){
if (rankHist[i]>=3){
return true;
}else{
return false;
}
}
return false;
}
或者如果你愿意,那就是真的。
答案 4 :(得分:0)
您应避免多次退回声明。
你可以使用一面旗帜。在for循环外声明标志,然后相应地分配值,不要错过break语句。
这样做:
public boolean isThreeKind( int rankHist[]) {
boolean value = false;
for (int i=0;i<=13;i++){
if (rankHist[i]>=3){
value = true;
break;
}
}
return value;
}
答案 5 :(得分:0)
我认为他想要的是如果13中的每个元素都是&gt; = 3,他应该返回一个真实的,否则他应该返回一个假的。
public boolean isThreeKind( int rankHist[])
{
for (int i=0;i<=13;i++)
{
if (rankHist[i]<3)
{
return false; // Will return false if either of the element have value <3
}
}
return true; // Will return true only if all the 13 elements have value >=3
}