for ループを学習するときに、アクションの繰り返し回数がわかっていれば、for ループ演算子を使用してプログラムを短縮できると述べました。そして、繰り返し回数が不明な場合はどうなるでしょうか。これはよく起こります
が。
例:
10 進数体系から別の数体系への数値の変換を思い出すと、答えがゼロになるまで、数値 (および割り算の結果) をその数値体系の底で割る必要があります。何回シェアするかは不明です。そして、そのようなアルゴリズムを実装するプログラムは非常にたくさんあります。
これはどのように実装されていますか?
プログラミングにおけるこのような場合に備えて、条件付きのループ演算子があります。
C プログラミング言語では、条件付きループ ステートメントは while という単語で始まり、次の構造になります。
<プレ>
while (<条件>){
ループ本体
}コード>プレ>
すでにご存知のとおり、
- 条件は式であり、その結果は (条件文のように) true または false のいずれかになります。
- ループ本体は繰り返す必要があるコマンドです
- ループ本体が 1 つの
演算子のみで構成されている場合は、中括弧を省略できます。
オペレーターの仕組み:
1. まず、プログラムは while ワードの後の括弧内の条件を評価します。条件が満たされる (true) 場合、プログラムはループ本体に含まれるステートメントを実行します。
2. for ループと同様、ループ本体にステートメントが 1 つだけ含まれている場合は、ループ本体を強調表示する中括弧を省略できます。
3. ループ本体の実行が完了したら条件チェックに戻り、再度条件チェックを行います。
4. これらのアクション (条件の確認 - ループ本体の実行) は、条件が false になるまで繰り返されます。
5. この演算子の最初の実行時に条件がすぐに満たされない場合 (false)、プログラムはループ本体を実行しません。
この演算子の動作を分析すると、ループ本体には条件に影響を与える演算子が含まれている必要があることが明らかになるはずです。
たとえば、ループは条件で使用される変数の値をインクリメントできます。
「サイレント カウント」
と呼ぶプログラムの例
私たちの代わりにプログラムが例えば10まで数えてみましょう
。
プログラムは「Start」というフレーズを出力するはずです。と [完了] をクリックすると、これらのアクションの間に計算中の数値が表示されます。
このように
スタート
します。
1 2 3 4 5 6 7 8 9 10
仕上げ
て
while ループを使用したプログラムは次のようになります。
<プレ>
<コード>#include
名前空間 std を使用します。
主要()
{
int i;
cout << "開始\n";
i=1;
while(i<=10)
{
cout <<私は<<" ";
i++; //条件内の変数の変更に影響を与える演算子
}
cout << "\n終了";
}コード>プレ>
このプログラムでは変数 i=1 - 原点
に値を代入します。
さらに、変数 i の値が必要な値より大きくない (つまり、以下である) 限り、
1 - 変数 i の値を表示します
2 - 変数 i の値を 1 ずつ増やします。この演算子は括弧内の条件の値に影響します。変数 i はインクリメントされます。つまり、ある時点で条件 i<=10 が false になります。これは、i が 11 に等しくなったときに発生します。この場合、ループ本体は実行されなくなり、プログラムはループの後の次のステートメントを実行します。 クート << "\n終了";