在java中查找奇数

时间:2015-03-29 17:24:37

标签: java arrays

我尝试在Java中打印数组内部的奇数但这个算法不起作用......有人可以帮我吗?
打印结果如下:

"Exception in thread "main" .java.lang.ArrayIndexOutOfBoundsException: 7
    at JavaArray.main(JavaArray.java:12)"


代码:

public class JavaArray {

    public static void main(String[] args) {

        int[] myArray = {1,3,4,5,8,9,10};

        int i = 0;

        for(i = 0; i < myArray.length; i++); {

            if(myArray[i] % 2 == 1) {
                System.out.println(myArray[i]);
            } 

        }       

    }

}

4 个答案:

答案 0 :(得分:4)

删除终止for循环

的分号
for (i = 0; i < myArray.length; i++);
                                    ^

答案 1 :(得分:2)

因为你在for循环之后放了分号,变量i递增直到数组的长度(这里是7)。在循环结束之后,你试图通过i来访问myarray元素,这是7,因此它给出了超出范围的异常。

答案 2 :(得分:0)

除了额外的;你需要删除,你可以通过在循环声明中声明int来巩固:

for (int i = 0; i < myArray.length; i++) {
      .
      .
      .
}

答案 3 :(得分:0)

除了@Reimus点之外,您还可以像下面那样进行操作,如果数组尚未排序,则对数组进行排序,在您的情况下进行排序。仅供参考,而不是高于O(N)复杂度的Collections.sort使用哈希集。

public static void main(String[] args) {

int[] myArray={1,3,4,5,8,9,10};
Arrays.sort(str);
for (int i = 1; i < myArray.length; i++) {
  if (str[i] == str[i - 1]) {
    System.out.println("Dupe-num: " + str[i];
  }
}
}