3

我的程序根本不打印任何东西。

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

       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]);
4

5 回答 5

2

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

for(int x=0; x<9; x++){
    for(int y=0; y<9; y++){
于 2012-11-20T14:55:47.517 回答
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++){
于 2012-11-20T14:56:05.293 回答
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
    // ...
}

你应该看到一些类似板的东西

于 2012-11-20T15:24:50.150 回答
0

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

它应该是for(int x=0; x<9; x++){

于 2012-11-20T14:56:14.057 回答
0

您可能想选择 x<9 和 y<9 而不是 > !;-) 这是条件循环。如果为假,则循环退出。在你的情况下它总是错误的。

于 2012-11-20T14:56:47.877 回答