0

New Boston のビデオの練習をいくつか試していますが、うまくいきません。私はJavaが初めてで、これが私の最初のクラスです。2 次元配列を作成する割り当てがあり、それを画面に表示する方法がわかりません。このプラクティスは、Thenewboston の Java チュートリアル、ビデオ # 34 からのもので、彼にとってはうまくいきます!

public class inventory {
public static void main (String[] args) {
    int firstarray[][]= {{8,9,10,11},{12,13,14,15}};
    int secondarray[][]={{30,31,32,33},{43},{4,5,6}};

    System.out.println("This is the first array");              
    display(firstarray);
    System.out.println("This is the second array");
    display(secondarray);
    }


public static void display (int x[][])
{
    for(int row=0;row<x.length;row++)
    {
        for(int column=0;column<x.length;column++);
            System.out.print(x[row][column]+"\t");
        }

     { 

    System.out.println();
     }

} }

4

2 に答える 2

6

for ループの後に を置いて;、本体だと思っていたものを否定しています。取り除く

for(int column=0;column<x.length;column++); // <--- this ; 

この状況では、 variable が宣言されスコープを持つforループの本体は、 の後ろと の前のすべてです。言い換えれば、何もありません。実際には を に置き換える必要があります。column);;{


正しいインデントは、構文的に正しいコードを書くのに大いに役立ちます。

于 2013-10-10T19:41:51.903 に答える
1

for サイクルの最後にセミコロンがあり、フォーマットが適切ではありません。絶対に役に立たない2つのブラケットもあります:)。正しいコードは次のようになります。

public static void display(int x[][]) {
    for (int row = 0; row < x.length; row++) {
        for (int column = 0; column < x.length; column++) {
            System.out.print(x[row][column] + "\t");
        }
        System.out.println();
    }
}

それでも表示機能は正しくありません。行と列の長さが異なるため、最後に失敗します。

これを機能させたい場合は、2 番目のサイクルで、行数 (つまりx.length) ではなく、実際の ROW の長さを考慮する必要があります。

あなただけに変更column < x.lengthする必要がありますcolumn < x[row].length

したがって、作業コードは次のとおりです。

public static void display(int x[][]) {
    for (int row = 0; row < x.length; row++) {
        for (int column = 0; column < x[row].length; column++) {
            System.out.print(x[row][column] + "\t");
        }
        System.out.println();
    }
}
于 2013-10-10T19:46:11.643 に答える