📜  C++ while和do … while循环

📅  最后修改于: 2020-09-25 04:50:37             🧑  作者: Mango

在本教程中,我们将借助一些示例学习C++编程中while和do … while循环的用法。

在计算机编程中,循环用于重复代码块。

例如,假设我们要显示一条消息100次。然后,我们可以使用循环,而不必编写打印语句100次。

那只是一个简单的例子;通过有效地使用循环,我们可以在程序中实现更高的效率和复杂性。

C++中有3种循环类型。

在上一教程中,我们了解了C++ for循环。在这里,我们将学习whiledo...while循环。

C++ while循环

while循环的语法为:

while (condition) {
    // body of the loop
}

这里,

要了解有关conditions更多信息,请访问C++关系运算符和逻辑运算符。

While循环流程图

示例1:显示从1到5的数字

// 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

该程序的工作原理如下。

示例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 
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++做... while循环

do...while循环是的变体while有一个重要区别循环:身体do...while循环一次前执行condition进行检查。

其语法为:

do {
   // body of loop;
}
while (condition);

这里,

do ... while循环流程图

示例3:显示从1到5的数字

// 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

该程序的工作原理如下。

示例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 
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循环的主体仅运行一次。

无限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迭代次数未知时,通常使用whiledo...while循环。例如,

while (condition) {
    // body of the loop
}

查看以下示例以了解更多信息: