1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

【C言語超入門(第24回)】繰り返しから抜け出すにはbreakを使おう

Pocket

C言語で繰り返し処理を行う場合は、指定した一定の回数を繰り返すfor文と、繰り返し回数が決まっていない不定回数を繰り返すwhile文及びdo〜while文があります。

このような繰り返し処理の途中でループから抜け出したいとき、break文を使います。

break文はその名前のとおり、ループ制御構造を壊すための文と言えます。

基本的なbreak文の記述方法

break文は以下のように記述します。

break文は上記のように単独で使われることはほとんどありません。

一般的に、if文と組み合わせて以下のように使います。

break文を使ってループから抜け出す方法

for文やwhile文、do〜while文のループから抜け出すときは、if文を使ってループを抜け出す条件を記述します。

以下のプログラム1は、for文を使い、文字配列mojiに格納された文字数分をループします。

※プログラム1の実行結果

もしプログラム1において、文字列mojiの中に”d”という文字があった場合はループを抜け出したいとしたら、以下のプログラム2のようにif文とbreak文を追記します。

※プログラム2の実行結果

break文を実行しますと、ループの直後に制御が移動します。

プログラム1とプログラム2の実行結果のうち、変数iの値に注目しますと、break文の実行によって変数iの値が変化していることが分かると思います。

break文を使って抜けることができるループはひとつだけ

break文を使うときに気を付けたいのは、break文で抜け出せるループは1つだけ、ということです。

例えば繰り返し処理が二重になっているなら、それぞれの繰り返し処理にbreak文を使う必要があります。

以下のプログラム3は、三重の繰り返し処理からbreak文を使ってループを抜け出しています。

※プログラム3の実行結果

もしbreak文の動きがよく理解できないようでしたら、少し面倒かもしれませんが、プログラム3と、プログラム3の実行結果をワンステップずつ付き合わせて見ていきますと、break文の挙動が分かると思います。

多重ループを一気に抜けだす裏技

上記のプログラム3のように多重ループから抜け出すには、繰り返し処理ごとにbreak文を呼び出すのが一般的です。

とは言え、多重ループの構造が複雑な場合、ループから抜け出すことが大変な場合があります。

そのようなとき、繰り返し処理から一気に抜け出す方法としてgoto文があります。

以下のプログラム4は、goto文を使い、三重ループの内側から一気に繰り返し処理を抜け出しています。

※プログラム4の実行結果

一見するとgoto文は非常に便利なように感じるかも知れません。

ですがプログラム4のように小規模なプログラムならいざ知らず、大規模なプログラムになりますと、goto文の飛び先がどこにあるのか分かりにくくなってしまい、プログラムの「読みやすさ」が著しく低下してしまいます。

したがってC言語では、goto文は使用しないことが一般的に推奨されていますし、goto文を嫌うプログラマーも多いです。

そのため、「goto文を使用した方が明らかにプログラムが読みやすくなる」と言い切れる場合を除き、goto文は裏技として覚えておく程度にしておく方がよいでしょう。

C言語超入門の第24回まとめ

今回のC言語超入門では、break文を使って、for文や、while文、do〜while文といった繰り返し処理の途中でループを抜け出す方法についてお伝えしました。

break文のポイントをまとめますと、

– break文を実行すると、ループ処理の直後に制御が移動する
– 多重ループから抜けるには、ループ処理ごとにbreak文が必要
– goto文を使ってループから抜けることは非推奨

です。

ステップ・バイ・ステップ。焦らず一歩ずつ進んでいきましょう。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る