2021年12月05日
川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説! total 703 count

break/continue: ループの流れを自由に支配

Written By: 川俣 晶連絡先

この章のテーマ §

 ループ構文の流れを自由に制御するbreak文とcontinue文を学びます。

前提知識 §

Console.WriteLineメソッド, 変数の基礎, 条件演算子, int型, if文, while文

解説 §

 while文やfor文などの繰り返しステートメント(文)を制御するステートメントが3つあります。

 break/continue/returnです。

 このうちreturnは、繰り返しだけでなくメソッドの実行そのものを終了させてしまうので、別扱いで説明します。

 ここでは、break/continueを説明します。

 break文は、繰り返しの実行をその場で終了させます。それ以後にどんな文が書いてあっても実行しません。通常はif文などを併用して、終わるべき時が来たら繰り返しを終了させるために使います。

 continue文は、繰り返しをそこで打ち切って、次の周回を強制的に開始させます。それ以上実行しても意味がなく、次の周回をすぐ開始させたいときに使います。サンプルソースでは、変数xが32のときはその後に書かれた文を実行させないために使用されています。

罠の数々 §

  • break文はswitch文の中でも使用されるが機能は異なっている
  • ネストした繰り返しの中でbreak/continue文を使うと、最内周の繰り返しに対して作用する。外のループを脱出するつもりでbreak文を書かないように注意しよう

参考リンク §

break ステートメント

continue ステートメント

サンプルソース: kw_breakcontinue §

int x = 1;

while (true)

{

    x = x * 2;

    // xが32なら即座にループの次回に進む

    if (x == 32) continue;

    // xが100より大きいならループを脱出する

    if (x > 100) break;

    Console.WriteLine(x);

}

Console.WriteLine("Finished!");

実行結果 §

2

4

8

16

64

Finished!

リポジトリ §

https://github.com/autumn009/CSharpPrimer2

練習問題 §

 以下のプログラムの実行結果を予測してみよう。

for (int i = 0; i < 3; i++)

{

    if (i != 3) continue;

    Console.WriteLine(i);

}

  1. 何も出力しない
  2. 0 1 2
  3. 0 1 2 3
  4. コンパイルエラー
  5. 実行時例外

[[解答]]

単行本情報