阵列代码故障排除 - 我的代码出了什么问题?

时间:2014-11-24 23:37:31

标签: java arrays character

EDIT EDIT EDIT 好的,我已经把for循环归结为了,但现在看来我的单元格分配有问题。

 int itemsX = (int) n*n*(percentX/100);
    int itemsBlank = (int) n*n*(percentBlank/100);
    int itemsO = (n*n) - (itemsBlank + itemsX);
    // Now we construct the grid.
    for (i = 0; i < n; i++) { 
        for ( j = 0; j< n;  j++) {
            double q  = Math.random();
            // In this first set of If/Else's, the program will 
            // use a random number generator to place our items. 
            if (q >= .66 && a < itemsBlank) {
                tissue[i][j] = ' ';
                a = a + 1;
            // In the event the Program has used up all of one particular item in a grid before finishing,
            //it will redirect the randomized value to a different item to be put in place.
            }if (q >= .66 && a == itemsBlank){
                    q = q - .33; }
             if (q < .66 && q >= .33 && b < itemsO) {

                tissue[i][j] = 'O';
                b = b + 1;
            if (q <.66 && q >= .33 &&  b == itemsO)
            { q = q - .33;
            }if (q < .33 && c < itemsX) {
                tissue[i][j] = 'X';
                c = c + 1;
            }if (q < .33 && c == itemsX)
             {q = q + .66;
             }
            if(q >= .66 && a < itemsBlank) {
                tissue[i][j] = ' ';
                a = a + 1;
             } 
            System.out.print(tissue[i][j]);
            }
        }System.out.println(); 
    }
}

另外,我删除了多余的文字,因为我觉得文字的墙壁难以忍受。

编辑编辑抓一下,我想我明白可能是什么问题。我将无法使用简单的方法来打印数组,因为我被禁止使用java.util.scanner库,所以我必须手动打印它。所以我认为我的问题是我需要简单地为此设计一个双循环。我会看看我是否可以自己做,但任何额外的输入都会非常感激。

编辑:特别感谢rgettman帮助我了解如何打印数组。

1 个答案:

答案 0 :(得分:1)

数组也是对象,但它们不会覆盖Object's toString() method,它负责输出[[C@36d98810

  

换句话说,此方法返回一个等于值的字符串:

getClass().getName() + '@' + Integer.toHexString(hashCode())

因为它是一个多维数组,所以你应该调用Arrays.deepToString来输出整个数组的内容。

System.out.println(Arrays.deepToString(tissue));