CodeGym /コース /JAVA 25 SELF /do-while ループ: 基本と挙動のポイント

do-while ループ: 基本と挙動のポイント

JAVA 25 SELF
レベル 4 , レッスン 3
使用可能

1. do-while ループの基本

想像してみてください。ユーザーが思い浮かべた数を当てるプログラムを書いています。少なくとも 一度 は数を尋ね、その後、当たるまで問い合わせを繰り返す必要があります。条件を先にチェックする場合、通常の while はループに全く入らないことがあります。

そこで役立つのが do-while です。while と違って、条件が最初から偽でも、必ずループ本体を一度は実行します。買い物の有無にかかわらずレジでガムをもらえる、そんな感じです。

do-while の構文

とても簡単です。Java にもう一つの「キーワードの組み合わせ」があるだけです。


do
{
    // ループ本体: このコードは少なくとも一度実行される
}
while (uslovie);
do-while ループの構文

条件の括弧の後、末尾; に注意してください! 通常の while にはありませんが、ここにはあります—初心者がはまりやすい典型的なポイントです。

do-while ループの手順の説明

  1. ループ本体に入る(必ず少なくとも1回)。
  2. 条件を評価する。
  3. 条件が真なら本体を繰り返す。
  4. 条件が偽ならループを抜ける。

2. 通常の while との違い

まず、通常の while の基本的な動作を思い出しましょう:

while (uslovie)
{
    // ループ本体
}

条件が最初から偽であれば、本体は一度も実行されません!

次は do-while の例です:

do
{
    // ループ本体
}
while (uslovie);

条件がすぐに偽でも、ループ本体は少なくとも1回は実行されます!

違いをコードで示します:

// 通常の while
int count = 0;
while (count > 0)
{
    System.out.println("count = " + count);
    count--;
}
// 何も出力されない

// do-while
int count2 = 0;
do
{
    System.out.println("count2 = " + count2);
    count2--;
}
while (count2 > 0);
// 条件が偽でも、"count2 = 0" と1行出力される!

ときには「奇妙」に思えるかもしれませんが、ユーザー入力やデータ検証ではまさにこの挙動が必要になります。

3. 実用的な do-while の使いどころ

このループがよく使われるのはどんな場面でしょうか。

データのバリデーション

よくあるパターン: ユーザーに正しいデータの入力を求め(例: パスワードは 6 文字以上)、正しくなるまで繰り返します。

String password;
do
{
    System.out.print("新しいパスワードを入力してください(6 文字以上): ");
    password = console.nextLine();
}
while (password.length() < 6);

System.out.println("パスワードを受け付けました!");

ユーザーがすぐに十分な長さのパスワードを入力したとしても、ループ本体は少なくとも1回は実行されます。

コンソールアプリのメニュー

よくあるパターン: メニューを表示してコマンドを待ち、特定のコマンドでのみ終了する。

String command;
do
{
    System.out.println("メニュー:");
    System.out.println("1. 挨拶を表示");
    System.out.println("2. 終了");
    System.out.print("操作を選んでください: ");
    command = console.nextLine();

    if (command.equals("1")) 
    {
        System.out.println("こんにちは、世界!");
    }
    else if (!command.equals("2"))
    {
        System.out.println("不明なコマンドです。");
    }
}
while (!command.equals("2"));

System.out.println("さようなら!");

4. 表: while と他のループの比較

ループの種類 条件の評価タイミング 本体の実行回数 適した場面
while
事前 0 回以上 繰り返し回数が事前に不明なとき
do-while
事後 1 回以上 本体を最低 1 回は実行したいとき
for
事前 0 回以上 反復回数が分かっているとき
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION