无法使用boolean返回if语句

时间:2013-11-26 21:11:20

标签: java for-loop boolean return

我正在尝试制作一个布尔方法,但它没有认识到我有一个返回语句。我该怎么办?

public boolean isThreeKind( int rankHist[]) {
  for (int i=0;i<=13;i++){
      if (rankHist[i]>=3){
          return true;
      }else{
          return false;
      }

  }
}

6 个答案:

答案 0 :(得分:2)

您的代码没有意义。如果你总是要在循环中运行一次代码,那么循环是没有意义的。我想你一定是误解了。你想做什么?

答案 1 :(得分:2)

假设该方法只需返回truefalse,如果它是greater than equal to 3, 会建议保持简单。

另外,请注意:

  • 循环遍历i=0 to i< rankHist.length数组包含而不是 13个元素,您将遇到ArrayOutOfBoundException.

    < / LI>
  • 如果它包含的元素超过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
}