1

Java初心者ですので、お手柔らかにお願いします。二次元配列を扱う練習法問題に取り組んでいます。問題は、array という名前の文字の 2 次元配列をパラメーターとして受け取るように指示するメソッドです。次に、「o」に初期化された周囲 (最初と最後の列、および最初と最後の行) を除いて、配列のすべての要素を「x」に初期化する必要があります。

私の質問は、2 次元配列で x と y を表すために各要素を初期化する方法と、境界の各行と列要素を初期化する方法です。たとえば、3 行 x 4 列を作成する 2 次元配列 -

char[][] table = new char[3][4]

- テーブルの外周を o だけで埋め、残りの内側を x で埋めますか?

これは本質的に出力がどのように見えるかです?

  { o, o, o, o},
  { o, x, x, o},
  { o, o, o, o},

また、私が問題を理解していない場合、誰かが私を正しい方向に導くことができますか?

ありがとう

4

2 に答える 2

0

int 配列はnewすべてゼロに初期化されます。

したがって、int[][] array = new int[3][4];

のように見えるだろう

{0,0,0,0}
{0,0,0,0}
{0,0,0,0}

自分で境界を設定する作業を行う必要があります

必要なのは、いくつかのループをネストし、配列内のどこにいるかを判断し、それに応じて設定することです: (疑似コード)

for i loop through array.length
    for j loop through array[i].length
        if i == first element or i == last element or j == first element or j == last element
             then array[i][j] = perimeter value
        else
             array[i][j] = center value

長さ n の配列には n 個の要素があり、0 から n-1 で参照されるため、このような配列がある場合

{1,2,3,4}

array[0] は 1 になります。これは、Java 配列がゼロベースであるためです。

それを考えると、最初は常に0になり、最後は長さ-1になります

于 2013-04-11T02:46:23.807 に答える