C++ while 和 do...while 循环
C++ while 和 do...while 循环
在本教程中,我们将通过一些示例来学习 C++ 编程中 while 和 do...while 循环的使用。
在计算机编程中,循环用于重复一段代码。
例如,假设我们想要显示一条消息 100 次。那么我们可以使用循环而不是写 100 次 print 语句。
那只是一个简单的例子;通过有效地利用循环,我们可以在程序中实现更高的效率和复杂性。
有3 C++ 中的循环类型。
for
循环while
循环do...while
循环
在上一教程中,我们了解了 C++ for 循环。在这里,我们将学习while
和 do...while
循环。
C++ while 循环
while
的语法 循环是:
while (condition) {
// body of the loop
}
在这里,
- 一个
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 | 动作 |
---|---|---|---|
第一个 | i = 1 | true |
1
被打印和 i 增加到 2 . |
第二次 | i = 2 | true |
2
被打印和 i 增加到 3 . |
第三次 | i = 3 | true |
3
被打印和 i 增加到 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
循环是 while
的变体 循环有一个重要区别:do...while
的主体 循环在 condition
之前执行一次 已检查。
它的语法是:
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 | |
第一个 | i = 2 | true |
2
被打印和 i 增加到 3 |
第二次 | i = 3 | true |
3
被打印和 i 增加到 4 |
第三次 | i = 4 | true |
4
被打印和 i 增加到 5 |
第四次 | 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
的主体 如果用户输入负数,循环只会运行一次。
无限循环
如果 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 vs while 循环
一个 for
当迭代次数已知时,通常使用循环。例如,
// 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语言