📅  最后修改于: 2020-09-25 04:50:37             🧑  作者: Mango
在计算机编程中,循环用于重复代码块。
例如,假设我们要显示一条消息100次。然后,我们可以使用循环,而不必编写打印语句100次。
那只是一个简单的例子;通过有效地使用循环,我们可以在程序中实现更高的效率和复杂性。
C++中有3种循环类型。
在上一教程中,我们了解了C++ for循环。在这里,我们将学习while
和do...while
循环。
while
循环的语法为:
while (condition) {
// body of the loop
}
这里,
要了解有关conditions
更多信息,请访问C++关系运算符和逻辑运算符。
// C++ Program to print numbers from 1 to 5
#include
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
该程序的工作原理如下。
// 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
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
变量中。
当用户输入负数时,循环终止。最后,显示总和。
该do...while
循环是的变体while
有一个重要区别循环:身体do...while
循环一次前执行condition
进行检查。
其语法为:
do {
// body of loop;
}
while (condition);
这里,
// C++ Program to print numbers from 1 to 5
#include
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
该程序的工作原理如下。
// 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
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
循环继续进行,直到用户输入一个负数。当数字为负数时,循环终止;否则为0。负数不会添加到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
循环。例如,
// This loop is iterated 5 times
for (int i = 1; i <=5; ++i) {
// body of the loop
}
在这里,我们知道for循环将执行5次。
但是, while
迭代次数未知时,通常使用while
和do...while
循环。例如,
while (condition) {
// body of the loop
}
查看以下示例以了解更多信息: