工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C++ while/do-whileループ完全ガイド:繰り返し処理をマスターする

C++ while/do-while ループ – 繰り返し処理をマスターする

C++の while ループと do-while ループを、明確な実例、フローチャート、ベストプラクティスのヒントとともに解説します。

ループは効率的なプログラミングの基石です:コード行を複製せずに、コードブロックを繰り返し実行できます。範囲をイテレートする場合も、ユーザー入力を待つ場合も、適切なループタイプを選ぶことは、読みやすく保守しやすいコードにとって不可欠です。

C++には3つの主要なループ構造があります:

  1. for ループ – 反復回数が既知の場合に最適
  2. while ループ – 条件が真の間実行
  3. do…while ループ – 条件判定前に少なくとも1回実行を保証

for ループは前回のチュートリアルで扱ったため、この記事では while と do…while ループに焦点を当て、構文、実行フロー、よくある落とし穴、実用的なユースケースを詳述します。


C++ while ループ

while ループの構文はシンプルです:

while (condition) {
    // ループの本体
}

ループは各反復の前に condition を評価します:

C++の関係演算子と論理演算子について詳しくは C++ 関係演算子と論理演算子 ガイドを参照してください。


while ループのフローチャート

C++ while/do-whileループ完全ガイド:繰り返し処理をマスターする

実例 1: 1から5までの数字を表示

// 1から5までの数字を出力するC++プログラム
#include <iostream>
using namespace std;

int main() {
    int i = 1;
    // 1から5までのwhileループ
    while (i <= 5) {
        cout << i << " ";
        ++i;
    }
    return 0;
}

出力

1 2 3 4 5

プログラム実行のステップバイステップ分析:

反復変数i <= 5アクション
1回目i = 1true1 出力、i は 2 に
2回目i = 2true2 出力、i は 3 に
3回目i = 3true3 出力、i は 4 に
4回目i = 4true4 出力、i は 5 に
5回目i = 5true5 出力、i は 6 に
6回目i = 6falseループ終了

実例 2: 正の数のみの合計

// 正の数の合計を求めるプログラム
// ユーザーが負の数を入力したらループ終了
// 入力された負の数は合計に加算されない
#include <iostream>
using namespace std;

int main() {
    int number;
    int sum = 0;

    // ユーザーから入力を取得
    cout << "Enter a number: ";
    cin >> number;

    while (number >= 0) {
        // すべての正の数を加算
        sum += number;
        // 数が正なら再度入力を促す
        cout << "Enter a number: ";
        cin >> number;
    }

    // 合計を表示
    cout << "\nThe sum is " << sum << endl;
    return 0;
}

出力

Enter a number: 6
Enter a number: 12
Enter a number: 7
Enter a number: 0
Enter a number: -2
The sum is 25

この例では、プログラムがユーザーに数値を繰り返し求めます。入力された数が非負なら sum に加算されます。負の入力でループが終了し、最終的な合計が表示されます。


C++ do…while ループ

do…while ループは、条件を評価する前に本体を少なくとも1回実行する点で while と異なります。ループ本体が終了条件のチェック前に実行されなければならない場合に有用です。

構文は:

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

実行フロー:


do…while ループのフローチャート

C++ while/do-whileループ完全ガイド:繰り返し処理をマスターする

実例 3: 1から5までの数字を表示

// 1から5までの数字を出力するC++プログラム
#include <iostream>
using namespace std;

int main() {
    int i = 1;
    // 1から5までのdo...whileループ
    do {
        cout << i << " ";
        ++i;
    } while (i <= 5);
    return 0;
}

出力

1 2 3 4 5

実行ステップ:

反復変数i <= 5アクション
初期i = 1未チェック1 出力、i は 2 に
1回目i = 2true2 出力、i は 3 に
2回目i = 3true3 出力、i は 4 に
3回目i = 4true4 出力、i は 5 に
4回目i = 5true5 出力、i は 6 に
5回目i = 6falseループ終了

実例 4: 正の数のみの合計

// 正の数の合計を求めるプログラム
// ユーザーが負の数を入力したらループ終了
// 入力された負の数は合計に加算されない
#include <iostream>
using namespace std;

int main() {
    int number = 0;
    int sum = 0;

    do {
        sum += number;
        // ユーザーから入力を取得
        cout << "Enter a number: ";
        cin >> number;
    } while (number >= 0);

    // 合計を表示
    cout << "\nThe sum is " << sum << endl;
    return 0;
}

出力 1

Enter a number: 6
Enter a number: 12
Enter a number: 7
Enter a number: 0
Enter a number: -2
The sum is 25

出力 2

Enter a number: -6
The sum is 0.

最初の入力が負の場合、ループは1回実行され即座に終了し、sum は変更されません。


無限ループ

ループの条件が決して false にならない場合、無限ループが発生します。これは意図的(永遠に動くサーバーなど)にも、偶発的(ロジックエラー)にも起こり得ます。

// 無限 while ループ
while (true) {
    // ループの本体
}

同様に do…while でも無限ループ可能:

int count = 1;
do {
    // ループの本体
} while (count == 1);

このようなループは、プログラムが終了するかシステムのメモリが尽きるまでリソースを消費し続けます。


for ループ vs while ループ

for ループは反復回数が事前に分かっている場合に最適です:

// 5回反復
for (int i = 1; i <= 5; ++i) {
    // ループの本体
}

一方、while と do…while ループは、反復回数がユーザー入力や複雑な条件の結果など、実行時データに依存する場合に適しています。


さらにC++ループ例を探索:

C言語

  1. C# 条件分岐をマスターする:if、if-else、if-else if、ネストした if 文
  2. C++クラスとオブジェクト完全ガイド:オブジェクト指向プログラミングの実践
  3. C++メモリ管理の極意:newとdeleteのエキスパート活用法
  4. C++ public/protected/private継承の違いを徹底解説
  5. C++フレンド関数とフレンドクラス:アクセス制御のマスター
  6. C++ do-while文:構文、実践例、ネストしたループ
  7. while文 vs do-while文:実践例で明確に比較
  8. C++日付と時刻の完全ガイド:ctimeライブラリの活用
  9. C++オーバーロード完全マスター:関数と演算子のオーバーロード
  10. C++ファイルI/O完全マスター:fstreamによる読み書き
  11. Javaで回文数を判定する:while文とfor文を使ったアルゴリズム