为什么我的循环在迭代和数组时提前停止

时间:2016-10-18 17:35:39

标签: java arrays

所以我试图迭代一个4乘3的对象数组并根据用户输入设置每个对象的值,但是我遇到了一个问题,即通过数组的迭代停止在6而不是总共12个。我尝试了一些编写迭代器的方法,但它们总是失败。这是代码。

Card[][] field = new Card[3][2];
    void setvals(){
        Scanner scanner = new Scanner(System.in);
        for(int row= 0; row < field.length; row++){
            for(int col = 0; col < field[row].length; col++) {
                String input = scanner.nextLine();
                field[row][col] = new Card();
                field[row][col].makeCard(input);
            }
        }
    }

我也试过&lt; =而不是&lt;但后来它给了我数组索引超出范围。我不知道问题是什么。

2 个答案:

答案 0 :(得分:1)

你说:

  

所以我试图迭代一个4乘3的对象数组......

这是你的阵列:Card[][] field = new Card[3][2];

这不是4x3阵列。它是一个3x2数组,这意味着你的循环中应该有6次迭代,这就是正在发生的事情。这里没有错误。

答案 1 :(得分:1)

你的问题在于数组:

Card[][] field = new Card[3][2];

您希望数组为4 x 3,然后将尺寸设置为:

Card[][] field = new Card[4][3];

您的代码无法正常工作的原因,因为您目前有一个2 x 3数组,评估为6次迭代。 4 x 3数组将根据需要评估为12次迭代。