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

次に、「Hello World」を使用してメインで呼び出しPrintLine、コードがアクセスされていることを確認しました。エラーはフラグされませんが、何も出力されません。メインは、私が単純で愚かなことをしていないことを確認するためだけに以下にもあります:

    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 ループの不適切な条件に加えて、使用を検討する必要があります

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そこに記述したコードが実行されるようにします
  • 内側のループに印刷されているものを1行で印刷するように変更したので、ボードのように見えます

今あなたがするなら

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 に行きたいと思うかもしれません! ;-) これは条件ループです。false の場合、ループは終了します。あなたの場合、それは常にfalseです。

于 2012-11-20T14:56:47.877 に答える