添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

C++ while和do...while循环

  • while和do...while循环 :C++中的 while 循环在条件为真时重复执行代码块,而 do...while 循环至少执行一次代码块后再检查条件。
  • 循环的工作方式 :在 while 循环中,首先评估条件,如果为真则执行循环体,然后再次评估条件;在 do...while 循环中,循环体先执行一次,然后评估条件。
  • 循环的应用场景 for 循环通常用于已知迭代次数的场景,而 while do...while 循环适用于迭代次数未知的情况。
  • 在计算机编程中,循环用于重复执行一段代码。

    例如,假设我们想要显示一条信息 100 次。那么,我们可以使用循环,而不是写 100 次打印语句。

    这只是一个简单的例子;通过有效利用循环,我们的程序可以更加高效和复杂。

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

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

    C++ while 循环

    while 循环的语法是:

    while (condition) {
    // 循环的主体
    }
  • while 循环评估 condition
  • 如果 condition 评估为 true ,则执行 while 循环内的代码。
  • condition 再次被评估。
  • 这个过程持续进行,直到 condition false
  • condition 评估为 false 时,循环终止。
  • 要了解更多关于 conditions ,请访问 C++ 关系和逻辑运算符。

    while 循环的流程图

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

    // C++ 程序,打印从 1 到 5 的数字

    #include <iostream>

    using namespace std;

    int main() {
    int i = 1;

    // 从 1 到 5 的 while 循环
    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
    第五次 i = 5 true 打印 5 并将 i 增加到 6
    第六次 i = 6 false 循环终止

    示例 2:只求正数的和

    // 程序用于求正数的和
    // 如果用户输入一个负数,则循环结束
    // 输入的负数不加入总和

    #include <iostream>
    using namespace std;

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

    // 用户输入
    cout << "输入一个数字: ";
    cin >> number;

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

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

    // 显示总和
    cout << "\n总和是 " << sum << endl;

    return 0;
    }
    输入一个数字: 6
    输入一个数字: 12
    输入一个数字: 7
    输入一个数字: 0
    输入一个数字: -2

    总和是 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 循环的流程图

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

    // C++ 程序,打印从 1 到 5 的数字

    #include <iostream>

    using namespace std;

    int main() {
    int i = 1;

    // 从 1 到 5 的 do...while 循环
    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
    第五次 i = 6 false 循环终止

    示例 4:仅计算正数之和

    // 程序用于查找正数的总和
    // 如果用户输入一个负数,循环结束
    // 输入的负数不加入总和中

    #include <iostream>
    using namespace std;

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

    do {
    sum += number;

    // 从用户那里获取输入
    cout << "输入一个数字: ";
    cin >> number;
    }
    while (number >= 0);

    // 显示总和
    cout << "\n总和是 " << sum << endl;

    return 0;
    }
    输入一个数字: 6
    输入一个数字: 12
    输入一个数字: 7
    输入一个数字: 0
    输入一个数字: -2

    总和是 25

    在这里, do...while 循环持续进行,直到用户输入一个负数。当数字是负数时,循环终止;负数不会被加入到 sum 变量中。

    输入一个数字: -6
    总和是 0.

    如果用户一开始就输入一个负数, do...while 循环体仅运行一次。

    无限while循环

    如果循环的 条件 总是 true ,循环将无限次运行(直到内存满)。例如,

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

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

    // 无限do...while循环

    int count = 1;

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

    在上述程序中, 条件 总是 true 。因此,循环体将无限次运行。

    for循环与while循环的对比

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

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

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

    然而,当迭代次数未知时,通常使用 while do...while 循环。例如,

    while (condition) {
    // 循环体
    }

    查看这些示例以了解更多: