カテゴリー
Java

for文の入れ子について知ろう

この章ではfor文の入れ子について学習します。
入れ子とはfor文の中にfor文がある構造です。1 では上の例の説明します。
〇 iに1を代入します。

〇「i<=3」の条件式を判定します。
ここがTRUEであるならば、1 が3回実行されて
1掛ける1=1
1掛ける2=2
1掛ける3=3
と出力されます。
つまり、外側のfor文が1周するごとに中のfor文は3周します。11
〇次にi++に戻りiに1を足します。
ここでiは2になります。

〇そして条件式の判定に入りますが、まだiは2なのでTRUEということになり、1 が3回実行されて
2掛ける1=2
2掛ける2=4
2掛ける3=6
と出力されます。

〇次にi++に戻りiに1を足します。
ここでiは3になります。

〇そして条件式の判定に入りますが、まだiは3なので,TRUEということになり、1 が3回実行されて
3掛ける1=3
3掛ける2=6
3掛ける3=9
と出力されます。

〇次にi++に戻りiに1を足します。
ここでiは4になります。

〇そして条件式の判定に入りますが、iは4で3以下ではないのでFALSEとなり、ここでループは終わりになります。1

次はfor文を使って配列のデータを取り出す方法について説明します。
初めにfor文を使わない例をみてみましょう。1 この例のように今までは1 のように1つ1つデータを足していましたが、for文を使うと以下のように簡潔に書くことが出来ます。11 「配列名.length」という構文で配列の要素数を取得出来ます。
この例の要素数は3ですので、その要素数の分だけfor文でデータを取り出します。
goukei +=test[i];を書き換えると1と同じ意味になります。
for文の流れは以下の通りです。
1周目はtest[i]のiには0が入るので、1となり、goukeiに22が代入されます。

2周目はtest[i]のiには1が入るので、1となり、goukeiに45が代入されます。

3周目はtest[i]のiには2が入るので、1となり、goukeiに79が代入されます。
ここで、注意してほしいことがあります。
goukei変数はfor文の外で宣言していますが、i変数はfor文の中で宣言しています。
この違いはブロック内で宣言した変数はブロック内でしか使うことは出来ませんが、外で宣言した変数はfor文の外でも使用することが出来ます。
つまり、以下のようにブロックの中で宣言しているiのような変数は次の例のようにfor文の外で出力することは出来ません。1

次の例は先ほどのfor文の例を書き替えています。11 先ほどの例のfor文は以下の通りです。1 このfor文を書き替えると以下のようになります。1 基本構文は次の通りです。1 図式化しますと以下の通りですが、配列testに入っている要素が順番に変数iに代入されていきます。1 次は2次元配列のデータをfor文で取り出す方法について説明します。11 結果は次の通りです。
1 2 12 3 4 23 5 6 62 7 8 83
2次元配列のデータを取り出すためにはfor文の入れ子を使用します。1 「number.length」では2次元配列の配列数である4を、1ではそれぞれの配列の中に入っている要素数である3を取得できます。
1という形式で各配列に入っている要素の数を取得できます。1111 つまり、外側のfor文が1回ループするごとに、中のfor文は3回転しています。
次の例は2次元配列のすべての値の足し算をしています。111111 結果は「154」になります。
次はある配列を別の配列にコピーする方法について説明します。1 では説明をしていきます。1 =>これが元の配列です。

1 =>そして、aの配列と同じサイズの配列bをもう一つ作ります。
サイズは1で得ることが出来ます。

そして下のfor文を使って1のデータを1にコピーします。1 最後にfor文で1の内容を出力します。11