Java奇数数组

Java奇数数组,java,arrays,Java,Arrays,所以我刚开始上课,开始学习java。我遇到一个任务,你必须把-6和38之间的赔率放到一个数组中。我完全迷路了,这可能是一个愚蠢的问题,但在我开始的计划中,我哪里做错了 import java.util.*; public class oddNumbersClass { public static void main(String args[]) { int lowNumber = -6; int highNumber = 38; in

所以我刚开始上课,开始学习java。我遇到一个任务,你必须把-6和38之间的赔率放到一个数组中。我完全迷路了,这可能是一个愚蠢的问题,但在我开始的计划中,我哪里做错了

import java.util.*;



public class oddNumbersClass {
    public static void main(String args[]) {
        int lowNumber = -6;
        int highNumber = 38;
        int arraySize = (highNumber - lowNumber) / 2 + 1;
        int[] odds = new int[arraySize];

        for (int i = 0; i < highNumber - lowNumber; i += 2) {
            if (lowNumber % 2 == 0) {
                lowNumber += 1;
                odds[i] = lowNumber;
            }
        }

            System.out.println("Odd number of numbers between " + lowNumber + " and " + highNumber + " is " + arraySize);
            for (int counter = 1; counter <= arraySize; counter++) {
                System.out.print(odds[counter - 1] + " ");
            }

        }
    }
我猜是因为天气原因

        if (lowNumber % 2 == 0) {
            lowNumber += 1;
            odds[i] = lowNumber;

你的循环应该从lowNumber开始,在highNumber结束。你应该检查它们的赔率

循环应类似于:

int j = 0;
for(int i = lowNumber; i < highNumber; i++){
    if(i % 2 == 1)
        odds[j++] = i;
}
intj=0;
对于(int i=低数值;i<高数值;i++){
如果(i%2==1)
赔率[j++]=i;
}
你的代码有很多问题

  • 您的循环起点和终点错误

  • 您正在将
    i
    增加2。(为什么?)

  • 初始化数组时,请检查
    赔率[]
    数组的索引


  • 您的代码不起作用,因为您仅在
    lowNumber%2==0
    时向数组添加值。这只有一次是正确的,因为在此之后,您将增加2,并且永远不会输入条件。请尝试以下方法:

    for(int i=0; i<arraySize; i++) {
        if (lowNumber % 2 == 0) {
            lowNumber += 1;
        }
        odds[i] = lowNumber;
        lowNumber += 2;
    }
    
    for(int i=0; i<arraySize; i++) {
        if (lowNumber % 2 == 0) {
            lowNumber += 1;
        }
        odds[i] = lowNumber;
        lowNumber += 2;
    }
    
    import java.util.*;
    public class oddNumbersClass {
        public static void main(String args[]) {
            int lowNumber = -6;
            int highNumber = 38;
            ArrayList<Integer> odds = new ArrayList<Integer>();
            for (int i = lowNumber; i <= highNumber; i ++) {
                if (lowNumber % 2 != 0) {
                    odds.add(i);
                }
            }
            System.out.println("Odd number of numbers between " + lowNumber + " and " + highNumber + " is " + odds.size());
            for (Integer i : odds) {
                System.out.print(i + " ");
            }
        }
    }