bugfix> java > 投稿

私はJavaでテーブル形式を持っているとしましょう

 0    1    2
|_E_|____|____| 0
|___|____|____| 1

上部の数字は列のインデックスで、側面の数字は行のインデックスです。機能:

add_at(x,y)

x座標とy座標である2つの引数xとyを取ります。位置0,1から始まるforループを使用してテーブルを埋めようとしています

 0    1    2
|_E_|__x_|____| 0
|___|____|____| 1

xでマークされ、その後に0,2

 0    1    2
|_E_|__x_|__x_| 0
|___|____|____| 1

に進む

 0    1    2
|_E_|__x_|__x_| 0
|_x_|____|____| 1
  0    1    2
|_E_|__x_|__x_| 0
|_x_|__x_|____| 1
  0    1    2
|_E_|__x_|__x_| 0
|_x_|__x_|__x_| 1

Eでマークされている場所0,0を除き、テーブルがいっぱいになるまで

int max_row = 1;    //maximum row length is 1
int max_col = 2;    //maximum column length is 2
for (int x = 0; x<=max_row; x++) {
    for (int y = 1; y<max_col; y++) {
        this.add_at(x,y)
        }
    }

私はJavaの初心者であり、私が書いたforループは、出力を望んでいた方法で間違っていると確信しています。これに関するいくつかの助けをいただければ幸いです。

回答 2 件
  • y を変更  ゼロに初期化(つまり、すべての行にデータを入力)し、(0,0)に特別な条件を追加

    また、両方の条件で <= を使用する必要があります 。

    int max_row = 1;    //maximum row length is 1
    int max_col = 2;    //maximum column length is 2
    for (int x = 0; x <= max_row; x++) {
        for (int y = 0; y <= max_col; y++) {
            if (x == 0 && y == 0) continue;
            this.add_at(x,y);
        }
    }
    
    

  • 次のように行うことができ、必要に応じてコードを変更できます。

       public class Table {
        public static void main(String[] args) {
          int maxRow = 4;    //maximum row length is 4
          int maxCol = 5;    //maximum column length is 5
          for (int x = 0; x<maxRow; x++) {
            for (int y = 0; y<maxCol; y++) {
              if (x==0 && y==0){
                System.out.print("| |");
                continue;
              }
              add_at(x, y);
            }
            System.out.println();
          }
        }
        public static void add_at(int x, int y) {
    
          System.out.print("|x|");
        }
      }
    
    

    結果は次のようになります。

    | ||x||x||x||x|
    |x||x||x||x||x|
    |x||x||x||x||x|
    |x||x||x||x||x|
    
    

    出力からスクリーンショットを見ることができます:

    コードがお役に立てば幸いです

あなたの答え