カテゴリー
C++

forとifとbreakを組み合わせて使おう

この章ではfor文の中でのbreakの使い方について説明します。
switch文の中でbreakを使用しましたが、これは一連の流れを強制的に中止したい時やブロックを抜けたい時に使いました。
このbreakはfor文の中でも使用することが出来ますので、例を見てみましょう。11 for文のブロックの中にif文が入っていますが、
このif文の意味はbreakを使用しているので「もし、iが4になったらfor文を抜けますよ」と言う意味です。
ですので、「4つのリンゴ」「5つのリンゴ」を出力することなくループを終了します。
breakはこのように一連の流れを強制的に中止したい時に使用します。1 次の例はforの入れ子の中でbreakを使用しています。11 この例では上から2つ目のforの中でbreakを使っていますが、forの中でbreakを使った場合、breakで抜けることができるのはbreakのあるfor文(例の場合は上から2つ目)だけです。
つまり例の場合は上から2つ目のfor文の中のif文の条件部分が3を超えたら、(上から2つ目の)for文をbreakするのですが、breakした後はまた一番前の1に戻ってループを繰り返します。11 次の例をみてみましょう。11 一つ前の例のように入れ子の中のfor文でbreakを使用した場合、抜けることが出来るのは内側のfor文だけですが、一気に外側のブロック(一番前のfor)を抜けたい場合の方法について説明します。
ある条件になったら繰り返しを止めたいと思う箇所に1と記述してください。
次に抜けたい箇所に1と言う形式で記述すると、そこまで実行位置を移すことが出来ます。
ラベル名は変数名と同じ規則で自由に付けることが出来ます。
この例では1 の箇所で1の結果が3より大きければ1が実行されて、1のある場所まで実行位置を移すので二重ループそのものを抜けます。1 for以外でもgotoは使うことが出来ます。
以下の例ではif文の中でgotoを使用しています。11 初めにint number = 0;の箇所でnumberに0を代入しています。
次に1の箇所で「ループ」を出力します。
次にnumber++;の箇所で1を足しているので1になります。
次にif文の中で1の場合に1の箇所まで飛び、1ではない場合には1の箇所まで飛びます。
ですので、初めに5回「ループ」を出力します。
この後に1がTRUEになるので1が実行され、1の箇所に実行位置が移ります。
そして、1が実行されてプログラムを終了します。