使用for循环将奇数存储在数组中

时间:2016-10-15 18:39:24

标签: java arrays loops for-loop

我正在尝试创建一个名为array的{​​{1}},使用odds循环将-638之间的所有奇数存储到其中。< / p>

for

然而不起作用。任何帮助表示赞赏。感谢。

5 个答案:

答案 0 :(得分:2)

每次循环运行时,您都会增加m。因此,对于i = -6,您将存储在索引0处,但是在i = -4处,您将存储在索引2处。您正在跳过索引。一个更好的方法是使用我们知道每个其他数字都是奇数的事实,并且每次只增加2:

int[] odds = new int[22];
for (int i = -5, m = 0; i <= 38; i = i + 2, m++) {
    odds[m] = i;
}

答案 1 :(得分:1)

您当前正在允许跟踪数组中赔率索引的变量m与奇数的实际值一起移动。要解决此问题,请将m数组索引计数器移到for循环之外,以检查赔率:

int[] odds = new int[22];
int m = 0;

for (int i = -6; i <= 38; i++) {
    if (i % 2 != 0) {
        odds[m] = i;
        ++m;
    }
}

答案 2 :(得分:0)

只有存储新的奇数时才必须增加m 因此,删除for语句中的m ++并修改赋值赔率[m ++] = i;

答案 3 :(得分:0)

最好的解决方案是同时使用Tim和nhouser建议的内容:

int[] odds = new int[22];
int m = 0;
for (int i = -5; i < 38; i += 2) {
  odds[m++] = i;
}

答案 4 :(得分:0)

您在每次迭代时都会增加m

int[] odds = new int[22];
int oddCount = 0;
for (int i = -6; i <= 38;i++) {
    if (i % 2 != 0) {
        odds[oddCount] = i;
        oddCount++;
    }
}