-3

构建数独游戏。如果他们决定使用列而不是行输入数据,我如何使用用户输入更新我的二维数组?我不明白为什么它不能正常工作?

    else if (dataSelection == 2) {
        if (boardSize == 1) {
            int column = 1; 
            int column2 = 0; 
            while (column < 4) {
                Scanner firstColumn4x4 = new Scanner(System.in);
                System.out.println("Please enter four values using commas for column " + column);
                String column1Values4x4 = firstColumn4x4.next();
                String strArray[] = column1Values4x4.split(",");
                int arraySidesInteger[] = new int[strArray.length];
                for (int i = 0;  i < strArray.length;  i++) {
                    arraySidesInteger[i] = Integer.parseInt(strArray[i]);
                }
                ***fourArray[column-1][column2] = arraySidesInteger[column2];*** //can not figure out thisstatement 
                for (int i = 0; i < fourArray.length; i++)
                {
                    for (int j = 0; j < fourArray.length; j++)
                        System.out.print(fourArray[i][j] + " ");
                    System.out.println();
                }
                column++;
                column2++;                  
            }

如果用户为第 1 列输入 1、2、3、4,我希望它打印出来: 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0

但是我不断得到:1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

谢谢!

4

1 回答 1

2

您永远不会遍历行来实际插入用户的值。对于线路

fourArray[column-1][column2] = arraySidesInteger[column2];

你可能想要类似的东西

for (int i = 0; i < arraySidesInteger.length(); i++) {
    fourArray[i][column2] = arraySidesInteger[i];
}

column完全取消变量。

(编辑:因此,由于column2是您实际用于索引右列的变量,因此 while 循环应该在该变量上循环,而不是column.)

于 2013-07-08T21:33:48.687 回答