【发布时间】:2019-12-12 17:16:49
【问题描述】:
我需要返回一个只有奇数的数组,例如[1,3,5]。作为学校教育的一部分,我被要求这样做,但我看不出哪里出错了。
public static int[] odds(int numOdds) {
int[] odds = numOdds;
for (int i=0; i<odds.length; i++) {
if (odds[i] %2 != 0) {
return odds;
}
}
}
public static void main(String[] args) {
int[] theOdds = odds(3);
System.out.println(theOdds[0] + ", " + theOdds[1] + ", " + theOdds[2]);
}
【问题讨论】:
-
编译器错误信息说什么?你读过吗?将 int 存储在类型不是 int 而是 int[] 的变量中听起来不错吗?您的代码从不在数组中存储任何内容看起来正常吗? docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html
-
您将一个整数分配给一个整数数组。改为
int[] odds = new int[numOdds]; -
编译器甚至可以准确地告诉您出了什么问题。如果您在遇到麻烦的第一个迹象时举手,那么您将永远不会学到任何东西。为了学习,与问题作斗争很重要。
-
您正在将
int值传递给该方法。你想要前三个奇数吗?或者你想传递一个带有一些数字的整数数组并只从中选择奇数。请在您的问题中澄清这一点。 -
感谢您的 cmets。我一直在读它,我只是无法理解它,我的“导师”并没有真正给我时间解释让我理解。 numOdds 实际上是一个正整数,表示我必须存储在数组中的奇数个数