尝试在Java中打印Chars的2D数组

时间:2012-11-20 14:54:36

标签: java for-loop multidimensional-array

我的程序根本不打印任何内容。

首先,我在一个单独的类(董事会)中初始化了董事会:

       public class Board {
          public char board[][] = new char[9][9];   
          public void main(char[] args){

        for(int i=0; i<9; i++){
            board[i][0] = '_';
            board[i][8] = '_';
        }
        for(int h=0; h<9; h++){
            board[0][h] = '|';
            board[8][h] = '|';
        }

        for(int x=0; x>9; x++){
            for(int y=0; y>9; y++){
                System.out.println(board[x][y]);    
            }
        }
    }
}

然后在main中调用它,用PrintLine“Hello World”来检查代码是否被访问。没有错误被标记,但它也没有打印任何东西。主要是下面也是为了检查我没有做过任何简单和愚蠢的事情:

    public static void main(String[] args) {  
    Ticker T = new Ticker();
    Board B = new Board();       
    for(int x=0; x>9; x++){
        for(int y=0; y>9; y++){
            System.out.println("Hello World");
            System.out.print(B.board[x][y]);

5 个答案:

答案 0 :(得分:2)

for循环的终止条件不正确。应该是<,而不是>。改为:

for(int x=0; x<9; x++){
    for(int y=0; y<9; y++){

答案 1 :(得分:1)

你的for循环条件有问题: -

for(int x=0; x>9; x++){
        for(int y=0; y>9; y++){

上面循环中的代码永远不会被执行。 它应该是: -

for(int x=0; x<9; x++){
        for(int y=0; y<9; y++){

答案 2 :(得分:1)

除了for循环中的错误条件外,您还应该考虑使用

public class Board {
    public char board[][] = new char[9][9];

    // this is the constructor, it will be called if you say "new Board()"
    // the "main" method you had here will not be called automatically
    public Board() {
        for (int i = 0; i < 9; i++) {
            board[i][0] = '_';
            board[i][8] = '_';
        }
        for (int h = 0; h < 9; h++) {
            board[0][h] = '|';
            board[8][h] = '|';
        }

        for (int x = 0; x < 9; x++) {
            for (int y = 0; y < 9; y++) {
                // just a print so it does not make new lines for every char
                System.out.print(board[x][y]);
            }
            // new line once one column (board[x][0] - board[x][8]) is printed
            // note: you proably want to turn around the x and y above since
            // I guess you want to print rows instead of columns
            System.out.println();
        }
    }
}

它解决了一些问题

  • for循环的条件永远不会是真的
  • 用构造函数替换了main方法,因此您执行的代码已执行
  • 更改为在内部循环中打印一行中的内容,因此它看起来像一块板

现在,如果你这样做

public static void main(String[] args) {  
    Ticker T = new Ticker();
    Board B = new Board(); // << this line triggers printing
    // ...
}

你应该看到一些喜欢的事情

答案 3 :(得分:0)

看看 for(int x=0; x>9; x++){

应为for(int x=0; x<9; x++){

答案 4 :(得分:0)

你可能想要x&lt; 9和y&lt; 9而不是&gt; ! ;-) 这是条件循环。如果为false,则循环退出。在你的情况下,这总是错误的。