C++ while および do...while ループ
C++ while および do...while ループ
このチュートリアルでは、いくつかの例を使用して、C++ プログラミングでの while および do...while ループの使用法を学習します。
コンピュータ プログラミングでは、コード ブロックを繰り返すためにループが使用されます。
たとえば、メッセージを 100 回表示したいとします。次に、print ステートメントを 100 回書く代わりに、ループを使用できます。
これは単純な例にすぎません。ループを効果的に利用することで、プログラムの効率と洗練度を大幅に高めることができます。
3 あります C++ のループの種類。
<オール>for
ループwhile
ループdo...while
ループ
前のチュートリアルでは、C++ の for ループについて学びました。ここでは、while
について学習します。 と do...while
ループします。
C++ while ループ
while
の構文 ループは:
while (condition) {
// body of the loop
}
ここで、
- A
while
ループはcondition
を評価します condition
の場合true
に評価されます 、while
内のコード ループが実行されます。condition
再評価されます。- このプロセスは
condition
まで続きますfalse
です . condition
false
に評価されます 、ループが終了します。
conditions
について詳しく知るには 、C++ 関係演算子と論理演算子にアクセスしてください。
while ループのフローチャート
<図>
例 1:1 から 5 までの数字を表示する
// C++ Program to print numbers from 1 to 5
#include <iostream>
using namespace std;
int main() {
int i = 1;
// while loop from 1 to 5
while (i <= 5) {
cout << i << " ";
++i;
}
return 0;
}
出力
1 2 3 4 5
プログラムの仕組みは次のとおりです。
反復 | 変数 | i <=5 | アクション |
---|---|---|---|
1位 | i = 1 | true | <サンプル>1サンプル> i と出力されます 2 に増加 . |
2位 | i = 2 | true |
2
i が出力されます 3 に増加 . |
3位 | i = 3 | true | <サンプル>3サンプル> i が出力されます 4 に増加 |
4位 | i = 4 | true |
4
i が出力されます 5 に増加 . |
5位 | i = 5 | true |
5
i が出力されます 6 に増加 . |
6位 | i = 6 | false | ループが終了しました |
例 2:正の数のみの合計
// program to find the sum of positive numbers
// if the user enters a negative number, the loop ends
// the negative number entered is not added to the sum
#include <iostream>
using namespace std;
int main() {
int number;
int sum = 0;
// take input from the user
cout << "Enter a number: ";
cin >> number;
while (number >= 0) {
// add all positive numbers
sum += number;
// take input again if the number is positive
cout << "Enter a number: ";
cin >> number;
}
// display the sum
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
このプログラムでは、変数 number に格納されている数字を入力するように求められます。 .
数値の合計を格納するために、変数 sum を宣言します 0
の値に初期化します .
while
ユーザーが負の数を入力するまでループが続きます。各反復中に、ユーザーが入力した数値が sum に追加されます
ユーザーが負の数を入力すると、ループは終了します。最後に合計金額が表示されます。
C++ do...while ループ
do...while
loop は while
の変形です 1 つの重要な違いがあるループ:do...while
の本体 ループは condition
の前に 1 回実行されます
その構文は次のとおりです:
do {
// body of loop;
}
while (condition);
ここで、
- ループの本体が最初に実行されます。次に
condition
評価されます。 condition
の場合true
に評価されます 、do
内のループの本体 ステートメントが再度実行されます。condition
もう一度評価されます。condition
の場合true
に評価されます 、do
内のループの本体 ステートメントが再度実行されます。- このプロセスは
condition
まで続きますfalse
に評価されます .その後、ループが停止します。
do...while ループのフローチャート
<図>
例 3:1 から 5 までの数字を表示する
// C++ Program to print numbers from 1 to 5
#include <iostream>
using namespace std;
int main() {
int i = 1;
// do...while loop from 1 to 5
do {
cout << i << " ";
++i;
}
while (i <= 5);
return 0;
}
出力
1 2 3 4 5
プログラムの仕組みは次のとおりです。
反復 | 変数 | i <=5 | アクション |
---|---|---|---|
i = 1 | 未チェック | <サンプル>1サンプル> i が出力されます 2に増加 | |
1位 | i = 2 | true |
2
i が出力されます 3に増加 |
2位 | i = 3 | true | <サンプル>3サンプル> i が出力されます 4に増加 |
3位 | i = 4 | true |
4
i が出力されます 5に増加 |
4位 | i = 5 | true |
5
i が出力されます 6に増加 |
5位 | i = 6 | false | ループが終了しました |
例 4:正の数のみの合計
// program to find the sum of positive numbers
// If the user enters a negative number, the loop ends
// the negative number entered is not added to the sum
#include <iostream>
using namespace std;
int main() {
int number = 0;
int sum = 0;
do {
sum += number;
// take input from the user
cout << "Enter a number: ";
cin >> number;
}
while (number >= 0);
// display the sum
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
ここでは、do...while
ユーザーが負の数を入力するまでループが続きます。数値が負の場合、ループは終了します。 sum
に負の数は追加されません
アウトプット 2
Enter a number: -6 The sum is 0.
do...while
の本体 ユーザーが負の数を入力した場合、ループは 1 回だけ実行されます。
無限 while ループ
condition
の場合 のループは常に true
です 、ループは無限回実行されます (メモリがいっぱいになるまで)。たとえば、
// infinite while loop
while(true) {
// body of the loop
}
これは無限の do...while
の例です ループ。
// infinite do...while loop
int count = 1;
do {
// body of loop
}
while(count == 1);
上記のプログラムでは、 condition
常に true
です .したがって、ループ本体は無限回実行されます。
for と while ループ
for
loop は通常、反復回数がわかっている場合に使用されます。たとえば、
// This loop is iterated 5 times
for (int i = 1; i <=5; ++i) {
// body of the loop
}
ここで、for ループが 5 回実行されることがわかります。
ただし、while
と do...while
ループは通常、反復回数が不明な場合に使用されます。たとえば、
while (condition) {
// body of the loop
}
詳細については、次の例をご覧ください:
- フィボナッチ数列を表示する C++ プログラム
- GCD を検索する C++ プログラム
- LCM を検索する C++ プログラム
C言語