この章では2次元配列とfor文の入れ子で以下の九九表を作成します。 では例をみてみましょう。 ここでは9回の繰り返しを行いますが、初めの1回転目だけを説明します。
タグ: for
for文を入れ子にしよう
この章ではfor文の応用でfor文のネスト(入れ子)について説明します(つまりfor文の中にfor文を入れることができる)。
では例をみてみましょう。 ここがTRUEなので が3回実行されて
1掛ける1=1
1掛ける2=2
1掛ける3=3
が出力されます。
つまり、外側のfor文が1周するごとに、内側のfor文は3周します。 上の3番でiは2になりましたが、まだTRUEですので、 が3回実行されて
2掛ける1=2
2掛ける2=4
2掛ける3=6
が出力されます。
上の5番でiは3になりましたが、まだTRUEですので、 が3回実行されて
3掛ける1=3
3掛ける2=6
3掛ける3=9
が出力されます。 まとめますとこの例では外側のfor文が1周するごとに、中のfor文は3周しています。
これがfor文の入れ子です。
for文について知ろう
この章ではfor文について説明します。
while文は何回も同じ処理をする時に必要でしたが、for文もwhile文と同じ働きがあります。 forが最初に実行される時には初期値式から始まります。
初期値式とは条件式を判定するときの初めの変数です。
初期値式は下の例で言えばです。
次に初期値式を元に条件式を判定してTRUEであるならば、ブロックの中の文が実行されることになります。
条件式は下の例で言えばです。
ブロックの中の文が実行された後に増減式において、初期値を足したり引いたりする行為を行います。
増減式は下の例で言えばです。
プログラムの内容によってはなどの減算子の記述もできます。
では例をみてみましょう。 次の例は2つfor文がありますが、上のforで配列にデータを入れて、下のforでそのデータを取り出しています。
for文と配列の組み合わせを学んでください。 この例は最初のforでtashizan配列に要素を入れて、次のforで配列の要素を出力しています。 次の例ではfor文で文字列を出力する方法について説明します。 のように配列に文字列を入力する時には文字列の最後にが自動で付くと言いましたが、これを利用して、の条件式のように配列の要素がではない限りループします。
がありましたら、ループを終了します。
この章で説明することはfor文の中でif文を使うことと、さらにはfor文の中で「強制的に繰り返し文を終了させたい時に使用するbreak」の使い方について説明します。
breakは、現在実行中の 繰り返し文の実行を強制的に終了させます。
では例をみてみましょう。
結果はです。
for文のブロックの中にif文が入っています。
このようにfor文にif文を入れることも出来ます。
この例のif文の中にはbreakが入っているので「もし、iが4になったらforループを抜けますよ」と言う意味です。
ですので、「4つのリンゴ」を出力することなくループを終了します。
breakはこのように「一連の流れ(ループ)を強制的に中止しブロックを抜ける」と言う意味になります。
iが4になった時にfor文をbreakするので、それ以降の「4つのリンゴ」「5つのリンゴ」は表示されません。
for文の入れ子の中でbreakを使う場合には注意が必要です。
では例を見てみましょう。 結果は以下の通りです。上から2つ目のforの中でbreakを使っていますが、2つ目のforの中でbreakを使った場合breakで抜けることができるのはbreakのあるfor文(例の場合は上から2つ目)だけです。
つまり例の場合は上から2つ目のfor文の中のif文の条件部分が3を超えたら、(上から2つ目の)for文をbreakするのですが、breakした後はまた一番前のに戻ってループを繰り返します。
ですので
2掛ける2=4
2掛ける3=6
3掛ける2=6
3掛ける3=9
は ifの条件式(i*j>3)を超えているので表示されません。
では次に進みます。
for文の入れ子の場合、内側のfor文の中に
あるbreakはbreakを含むfor文のブロックしか抜けませんが、一気に外側のブロック(一番前のfor)を抜ける方法について説明します。
では例をみてみましょう。 ある条件になったら繰り返しを止めたいと思う箇所に と記述してください
(例の場合はbreak OUT;)。
次に抜けたいところにと言う形式で記述すると、そこまで実行位置を移すことが出来ます(例の場合は「OUT:」)。
ラベル名は変数名と同じ規則で自由に付けることが出来ます。
この例では の所で「i*j」の結果が3より大きければ、のある場所まで実行位置を移すので二重ループそのものを抜けます
結果は以下の通りです。
配列の要素をfor文で取り出そう
for文について知ろう
この章ではfor文について説明します。
同じような処理を何度も繰り返すプログラムを書く場合、以下のように何度も同じ処理を書くのは面倒ですし、間違いも多くなりがちです。
そこで、何回も同じ処理を繰り返す必要があるときに、for文を使えば簡単に記述することができます。 forが最初に実行される時には「初期値」から始まります。
初期値とは条件式を判定するときの初めの値です。
初期値は2つ目の例で言えばです。
次に初期値を元に条件式を判定してTRUEであるならば、処理文が実行されることになります。
条件式は2つ目の例で言えばです。
処理文が実行された後に増減式において、初期値を足したり引いたりする行為を行います。
増減式は2つ目の例で言えばです。
プログラムの内容によっては以下のようになどの減算子の記述もできます。 では例をみてみましょう。 結論から言うと猫と言う文字列を3回出力します。
①初めに変数iに初期値の0をセットします(初期値は0でなくても自由に決められます)。
慣習で初期値を入れる変数はiになっています。
②i<3の条件式を判定しますが、ここはまだtrueであるのでを実行します。
③それから増減式i++でiに1を足し、iは1になります
④そしてまた条件式i<3の判定に入り、上の3においてインクリメントされて1増えましたがまだ3以下なのでtrueとなりを実行します。
⑤それからi++でiに1を足し、iは2になります。
⑥そしてまた条件式i<3の判定に入り、インクリメントされて1増えましたがまだ3以下なのでtrueとなりを実行します。
⑦それからi++でiに1を足し、iは3になります
⑧そしてまた条件式i<3の判定に入り、インクリメントされて1増えてiは3になりましたので、条件式はfalseになりループを終了します。
次はfor文の応用でfor文のネスト(入れ子)について説明します。
つまり、for文の中にfor文を入れている形式です。
では例をみてみましょう。 結果は以下の通りです。 では順を追って説明します。
①iに1を代入します
②i<=3の条件式を判定します。
ここがtrueであるので が3回実行されて
1掛ける1=1
1掛ける2=2
1掛ける3=3
と出力されます。
つまり、外側のforが1周するごとに内側のforは3周します。 ③次にi++に戻りiに1を足します。
そこでiは2になります。
④そして条件式の判定に入りますが、まだiは2で3以下(i<=3)なので,trueということになり、が3回実行されて
2掛ける1=2
2掛ける2=4
2掛ける3=6
と出力されます。
外側のforが1周するごとに内側のforは3周します。
⑤次にi++に戻りiに1を足します。
そこでiは3になります。
⑥そして条件式の判定に入りますが、まだiは3で条件式(i<=3)と同じなので,trueということになり、 が3回実行されて
3掛ける1=3
3掛ける2=6
3掛ける3=9
と出力されます。
⑦次にi++に戻りiに1を足します。
そこでiは4になります。
⑧そして条件式の判定に入りますが、iは4で3以下ではないのでfalseとなり、ここでループは終わりになります。
forの中のcontinueの使い方を知ろう
for文の中のbreakの使い方を知ろう
この章ではfor文の中でif文を使うことと、さらにはfor文の中で強制的に繰り返し文を終了させるbreakについて説明します。
breakは、現在実行中の forやswitchなどの実行を強制的に終了させます。
では例をみてみましょう。 結果は以下の通りです。
1つ
2つ
3つ
for文のブロックの中にif文が入っています。
このようにfor文にはif文を入れることが出来ます。
この例のif文の意味はbreakを使っているので、もしiが4になったらforループを抜けますよと言う意味です。
ですので、「4つ」を出力することなくループを終了します。
breakはこのように一連の流れを強制的に中止し、ブロックを抜ける時に使用します。breakをするとブロックの中のbreak以降の文は実行されません。
次はforの入れ子の中でbreakを使用する方法について説明します。 上から2つ目のforの中でbreakを使っていますが、2つ目のforの中でbreakを使った場合、breakで抜けることができるのはbreakのあるfor文、つまり、上から2つ目のfor文だけです。
先頭のfor文は抜けることができないということです。
例の場合はfor文の中のif文の条件部分が3を超えたら、上から2つ目のfor文をbreakするのですが、breakした後はまた先頭のに戻ってループを繰り返します。
はif文でbreakしているので表示されません。
つまり、breakをするとブロックの中のbreak以降の文は実行されないと言うことです。
for文の入れ子の場合、内側のfor文の中にあるbreak文はbreak文があるfor文のブロックしか抜けませんが、次の例で一気に外側のブロックを抜ける方法について説明します。 入れ子になったfor文から抜け出す場合にはという形式でbreak文に指定します。
この例ではの部分です。
ラベル名は特別の意味があるわけではなく、ただの名前ですので自由に決めてください。
次に抜けたいところにを付けると、そこまで実行位置を移すことが出来ます。
この例ではに位置が移ります。
for文の入れ子について知ろう
この章ではfor文の入れ子について学習します。
入れ子とはfor文の中にfor文がある構造です。 では上の例の説明します。
〇 iに1を代入します。
〇「i<=3」の条件式を判定します。
ここがTRUEであるならば、 が3回実行されて
1掛ける1=1
1掛ける2=2
1掛ける3=3
と出力されます。
つまり、外側のfor文が1周するごとに中のfor文は3周します。
〇次にi++に戻りiに1を足します。
ここでiは2になります。
〇そして条件式の判定に入りますが、まだiは2なのでTRUEということになり、 が3回実行されて
2掛ける1=2
2掛ける2=4
2掛ける3=6
と出力されます。
〇次にi++に戻りiに1を足します。
ここでiは3になります。
〇そして条件式の判定に入りますが、まだiは3なので,TRUEということになり、 が3回実行されて
3掛ける1=3
3掛ける2=6
3掛ける3=9
と出力されます。
〇次にi++に戻りiに1を足します。
ここでiは4になります。
〇そして条件式の判定に入りますが、iは4で3以下ではないのでFALSEとなり、ここでループは終わりになります。
次はfor文を使って配列のデータを取り出す方法について説明します。
初めにfor文を使わない例をみてみましょう。 この例のように今までは のように1つ1つデータを足していましたが、for文を使うと以下のように簡潔に書くことが出来ます。 「配列名.length」という構文で配列の要素数を取得出来ます。
この例の要素数は3ですので、その要素数の分だけfor文でデータを取り出します。
goukei +=test[i];を書き換えるとと同じ意味になります。
for文の流れは以下の通りです。
1周目はtest[i]のiには0が入るので、となり、goukeiに22が代入されます。
2周目はtest[i]のiには1が入るので、となり、goukeiに45が代入されます。
3周目はtest[i]のiには2が入るので、となり、goukeiに79が代入されます。
ここで、注意してほしいことがあります。
goukei変数はfor文の外で宣言していますが、i変数はfor文の中で宣言しています。
この違いはブロック内で宣言した変数はブロック内でしか使うことは出来ませんが、外で宣言した変数はfor文の外でも使用することが出来ます。
つまり、以下のようにブロックの中で宣言しているiのような変数は次の例のようにfor文の外で出力することは出来ません。
次の例は先ほどのfor文の例を書き替えています。 先ほどの例のfor文は以下の通りです。 このfor文を書き替えると以下のようになります。 基本構文は次の通りです。 図式化しますと以下の通りですが、配列testに入っている要素が順番に変数iに代入されていきます。 次は2次元配列のデータをfor文で取り出す方法について説明します。 結果は次の通りです。
1 2 12 3 4 23 5 6 62 7 8 83
2次元配列のデータを取り出すためにはfor文の入れ子を使用します。 「number.length」では2次元配列の配列数である4を、ではそれぞれの配列の中に入っている要素数である3を取得できます。
という形式で各配列に入っている要素の数を取得できます。 つまり、外側のfor文が1回ループするごとに、中のfor文は3回転しています。
次の例は2次元配列のすべての値の足し算をしています。 結果は「154」になります。
次はある配列を別の配列にコピーする方法について説明します。 では説明をしていきます。 =>これが元の配列です。
for文について知ろう
この章では繰り返し文であるfor文について説明します。
何回も同じ処理を繰り返す必要があるときに、for文を使えば簡潔に記述することができます。
同じような処理を何度も繰り返すプログラムを書く場合、以下のように何度も同じ処理を書くのは面倒ですし、間違いも多くなりがちです。
では例をみてみましょう。 このように同じ文を何度も書くのは面倒ですね。
そこで、forを使用すると繰り返し文を簡単に書くことが出来ます。
以下がfor文の基本構文です。 forが最初に実行される時にはから始まります。
初期値式とは条件式を判定するときの初めの変数です。
初期値式は下の例で言えばです。
次に初期値式を元に条件式を判定してTRUEであるならば、処理文が実行されることになります。
条件式は下の例で言えばです。
処理文が実行された後に増減式において、初期値を足したり引いたりする行為を行います。
増減式は下の例で言えばです。
増減式はのようにデクリメントの記述もできます。
ではforの例を詳しく説明します。 結論から言うと猫と言う文字列を3回出力します。
では説明をしていきます。
〇初めにiに初期値の1をセットします。
初期値は1ではなくても自由に決められます。
〇 「i<=3」の条件式を判定します。
ここがTRUEですのでを実行します。
ここで1回目の「猫」を出力します。
〇それからi++で iに1を足し、iは2になります。
〇そしてまた条件式の判定に入り、iは2ですので、TRUEとなりを実行します。
ここで2回目の「猫」を出力します。
〇それからi++で iに1を足し、iは3になります。
〇そしてまた条件式の判定に入り、iは3ですので、TRUEとなりを実行します。
ここで3回目の「猫」を出力します。
〇それからi++で iに1を足し、iは4になります。
〇そしてまた条件式の判定に入り、iは4ですので、条件式はfalseになりループを終了します。
では以下の例をfor文で書き替えてみましょう。 結果は以下の通りです。 この例の場合は1回まわるごとにiがインクリメントされての中のiに代入されます。
条件式はですので、iには1から5までが代入されます。