C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のdo...whileループの使い方を徹底解説!構文とサンプルコード付き

C#におけるdo...whileループは、条件の判定をループの最後で行う繰り返し処理です。一般的なwhileループとよく似ていますが、最大の違いは「条件に関係なく、必ず最低1回はループ本体が実行される」という点です。

do...whileループの基本構文

do...whileループを作成するには、次のように記述します。

do {
    statement(s);
} while( condition );

条件式(condition)がループの末尾に置かれているため、プログラムの流れとしては以下のようになります。

  • まず、ループ内のステートメント(statement)が無条件に1回実行される。
  • その後に条件式が評価され、条件がtrueであれば、制御の流れが再びdoに戻り、ステートメントがもう一度実行される。
  • この処理が、条件がfalseになるまで繰り返される。

つまり、最初から条件がfalseだったとしても、ループの中身は少なくとも1回は実行されることになります。これは「ユーザーにメニューを必ず1回表示したい」「入力を必ず1回受け付けたい」といった場面で特に役立ちます。

C#でのdo...whileループのサンプルコード

以下は、C#でdo...whileループを使用した具体的な例です。

using System;

namespace Loops {
   class Program {
      static void Main(string[] args) {
         /* ローカル変数の定義 */
         int a = 50;

         /* doループの実行 */
         do {
            Console.WriteLine("value of a: {0}", a);
            a = a + 1;
         }

         while (a < 20);
         Console.ReadLine();
      }
   }
}

実行結果

value of a: 50

なぜ出力は1行だけ?

この例では、変数aの初期値が50であり、ループの継続条件であるa < 20は最初の時点ですでにfalseです。それでも「value of a: 50」が1回出力されるのは、do...whileループが条件判定前に処理を1回実行するためです。

もし同じコードを通常のwhileループで書いた場合、条件が最初からfalseのため、ループ本体は一度も実行されず、何も出力されません。この動作の違いこそが、do...whileループを使う大きな理由といえます。

まとめ

  • do...whileループは条件判定をループの最後で行う。
  • 条件がfalseでも最低1回は必ず実行されることが保証されている。
  • 「必ず1回実行したい処理」がある場合に最適なループ構造。
  1. MacでVRを使う方法とは?SteamVR対応やGPUエンクロージャなど最新情報を解説

    世界的に人気を博すHTC ViveやOculus Riftが世界各地で購入可能になった今、多くのMacユーザーが「MacでもVRは使えるのか?使えるならどうやって?」と疑問を抱いています。 かつてOculusのCEOパーマー・ラッキー氏は、「現行のどのMacBookもOculus Riftを動かすには性能が足りない」と発言していました。そこで今回は、MacでVRを動かす可能性について調査しました。結論から言うと、状況は決して明るいものではありません。詳しく見ていきましょう。 関連記事:Apple製VRヘッドセットの発売日に関する噂 MacでVRは使えるのか? 技術的にはMacでVRを動かすこと

  2. Pythonのループ入門:forループとwhileループの使い方を実例付きで解説

    ループは、あらゆるプログラミング言語やスクリプト言語において欠かせない基本機能です。同じ処理を何度も繰り返し実行できることは、プログラミングの根幹を成す要素といえます。 Pythonでは、forループとwhileループの2種類を使って繰り返し処理を実現します。この記事では、具体的なコード例とともに、それぞれの使い方を詳しく解説します。 Pythonのforループ Pythonのforループはさまざまな場面で活用できます。最もシンプルで一般的な使い方は、リストなどのコレクションの要素を順番に取り出して処理する「イテレーション(反復処理)」です。 基本構文 for i in collectio