この章で説明することは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より大きければ、のある場所まで実行位置を移すので二重ループそのものを抜けます
結果は以下の通りです。