ここから本文です

下記はJavaで2重ループで書かれたプログラムです。 2重ループの構造がイマイチ分...

gif********さん

2019/3/2309:28:37

下記はJavaで2重ループで書かれたプログラムです。
2重ループの構造がイマイチ分からず、理解に苦労しています。

下記コードを実行すると、10が表示されるのですが、
何故10と表示されるのか噛み砕いて説明して頂けますと幸いです。
ご回答よろしくお願いします。

public class test2 {
public static void main(String[] args) {
int array[][] = new int[][]{{1,2},{2,3,4}};
int total = 0;
for (int i = 0; i < array.length; i++) {
for (int j = i; j < array[i].length; j++) {
total += array[i][j];
}
}
System.out.println(total);
}
}

閲覧数:
34
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

nan********さん

2019/3/2310:41:02

2次元配列ですね。
array.length とやると、2次元目の配列の長さが出てきます。
そして、i を、0から、array.length-1まで、回して、
array[i].length とやると、1次元目の1次元配列の長さがでます。
j を i から、array[i].length-1まで回していますね。
new int[][]{{1,2},{2,3,4}};
は、
new int[][]{{1,2,0},{2,3,4}};
と同じです。
結局
array[0][0]:1
array[0][1]:2
array[0][2]:0
array[1][1]:3
array[1][2]:4
1+2+0+3+4=10
となります。

  • 質問者

    gif********さん

    2019/3/2311:55:51

    さっそくご回答ありがとうございます。
    ご説明の中で以下のように書いて頂きましたが、
    例えば「array[0][0]」で何故「1」となるのかが分かりません(^^;)
    お手数ですが、ご回答頂けますと幸いです。

    array[0][0]:1
    array[0][1]:2
    array[0][2]:0
    array[1][1]:3
    array[1][2]:4

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2019/3/23 13:45:54

ご回答ありがとうございました。ちょっと自分でもいろいろ試してみようと思います。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる