从嵌套for循环返回变量

时间:2013-01-12 20:12:15

标签: java arrays loops methods

我正在写一个彩票课,其余的代码正在工作,除了比较匹配的彩票号码数量的方法。我无法弄清楚我的生活如何保持比赛的数量并将其归还。

我对java很新,所以如果这是一个明显明显的答案我会道歉。

以下是我正在使用的方法的代码:

public int numIntsInCommon(int[] picks){
     int inCommon = 0;

     for (int counter = 0; counter < 5; counter++)
     {
        for (int index = 0; index < 5; index++)
        {
           if (lotteryNumbers[counter] == picks[index])
              inCommon += 1;

        }
        return inCommon;
     }

     return inCommon;
  }

现在它目前只返回0。 任何帮助将不胜感激!感谢

5 个答案:

答案 0 :(得分:2)

从for循环中删除return inCommon。永远无法达到外部回报。

答案 1 :(得分:2)

在方法有机会完成外部循环之前,第一个return语句将返回inCommon值。我根本不确定第一次退货声明的意义,真的。

答案 2 :(得分:1)

public int numIntsInCommon(int[] picks)
{
     int inCommon = 0;

     for (int counter = 0; counter < 5; counter++)
     {
        for (int index = 0; index < 5; index++)
        {
           if (lotteryNumbers[counter] == picks[index])
              inCommon++;
        }
     }

     return inCommon;
}

现在应该没问题。你之前做过的,是在第一次迭代后跳出嵌套循环。换句话说:由于你的嵌套返回,循环在counter = 1之后结束。

答案 3 :(得分:1)

在java中,“return”表示函数的终止,所以如果你在内部循环中返回,那么外部循环在任何情况下都不会被执行。

答案 4 :(得分:0)

如果您使用Java Collections Framework并定义您的lotteryNumbers并选择List,那么您的问题就更容易解决,如下所示:

public int numIntsInCommon(List<Integer> picks) {
    List<Integer> matches = new ArrayList<Integer>(picks);
    matches.retainAll(lotteryNumbers);
    return matches.size();
}