最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

那些年C++ 流程控制do … while循环

XAMPP相关 admin 101浏览 0评论

第九章:C++ while 与 do…while 循环

在此篇教程中,我们将借助示例程序来学习 C++ 编程中 while 和 do…while 循环语句的使用。

 

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

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

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

C++ 中有 3 种类型的循环:

  1. for 循环
  2. while 循环
  3. do...while 循环

在上篇教程中 那些年C++ 流程控制for 循环,我们已学会使用了 C++ for 循环语句。在此,我们将继续学习 whiledo...while 循环语句。


C++ while 循环

while 循环基本语法:

while (condition) {
    // 循环体
}

以上,

  •  while 循环判断 condition
  • 如果 condition 判断为 true, 则执行 while 循环体内的代码
  • 再次判断 condition
  • 这个过程一直持续到 condition 为 false为止
  • 当 condition 判断为 false, 循环终止

了解更多关于 conditions, 请翻阅教程 那些年C++运算符


while 循环流程图

dra097

C++ while 循环流程图

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

// 显示从1到5的数字的C++程序

#include <iostream>
using namespace std;

int main() {
    int i = 1; 

    // while循环从1到5
    while (i <= 5) {
        cout << i << " ";
        ++i;
    }

    return 0;
}

输出:

1 2 3 4 5

这是该程序的运行过程:

迭代次 变量 i <= 5 执行动作
1st i = 1 true 1 被打印且 i 增加至 2.
2nd i = 2 true 2 被打印且 i 增加至 3.
3rd i = 3 true 3 被打印且 i 增加至 4
4th i = 4 true 4 被打印且 i 增加至 5.
5th i = 5 true 5 被打印且 i 增加至 6.
6th i = 6 false 循环终止

示例 2:求正数之和

// 求正数之和的程序
// 如果用户输入负数,则循环结束
// 输入的负数不会加到总和中去

#include <iostream>
using namespace std;

int main() {
    int number;
    int sum = 0;

    // 接收用户输入
    cout << "Enter a number: ";
    cin >> number;

    while (number >= 0) {
        // 累加所有正数
        sum += number;

        // 如果数字为正,则再次输入
        cout << "Enter a number: ";
        cin >> number;
    }

    // 显示总和
    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 {
   // 循环体;
}
while (condition);

以上,

  • 循环体首先被执行。然后判断 condition
  • 如果 condition 判断为 true,则再次执行 do 语句内的循环体
  • 再次判断 condition
  • 如果 condition 判断为 true,则再次执行 do 语句内的循环体。
  • 这个过程一直持续到 condition 判断为 false。然后循环停止。

do…while 循环流程图

dra0097

C++ do…while 循环流程图


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

// 显示从1到5数字的C++程序

#include <iostream>
using namespace std;

int main() {
    int i = 1; 

    // do...while循环从1到5
    do {
        cout << i << " ";
        ++i;
    }
    while (i <= 5);

    return 0;
}

输出:

1 2 3 4 5

这是该程序的运行过程:

迭代次 变量 i <= 5 执行动作
i = 1 不检查 1 被打印且 i 增加至 2
1st i = 2 true 2 被打印且 i 增加至 3
2nd i = 3 true 3 被打印且 i 增加至 4
3rd i = 4 true 4 被打印且 i 增加至 5
4th i = 5 true 5 被打印且 i增加至 6
5th i = 6 false 循环终止

示例 4:求正数之和

// 求正数之和的C++程序
// 如果用户输入了负数,则循环结束
// 输入的负数不会加到总和中去

#include <iostream>
using namespace std;

int main() {
    int number = 0;
    int sum = 0;

    do {
        sum += number;

        // 接收用户的输入
        cout << "Enter a number: ";
        cin >> number;
    }
    while (number >= 0);

    // 显示总和
    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,则循环运行无限次(直到内存已满)。例如,

// 无限循环
while(true) {
    // 循环体
}

这是一个无限 do...while 循环的例子。

// 无限do...while循环

int count = 1;

do {
   // 循环体
} 
while(count == 1);

在上述程序中,condition 始终为 true。因此,循环体将运行无限次。


for vs while 循环

当迭代次数已知时,通常使用 for 循环。例如:

// 这个循环迭代了5次
for (int i = 1; i <=5; ++i) {
   // 循环体
}

在这里,我们知道 for 循环将执行 5 次。

但是,whiledo...while 循环通常在迭代次数未知时使用。例如:

while (condition) {
    // 循环体
}

 

程序算法实验室 zhangJA-Lab

转载请注明:XAMPP中文组官网 » 那些年C++ 流程控制do … while循环