我正在写一个彩票课,其余的代码正在工作,除了比较匹配的彩票号码数量的方法。我无法弄清楚我的生活如何保持比赛的数量并将其归还。
我对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。 任何帮助将不胜感激!感谢
答案 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();
}