C++ Do-While 循环

2025 年 3 月 29 日 | 阅读 8 分钟

在 C++ 中,do-while 循环是 while 循环的一种变体。它是一个出口控制循环,这意味着在循环体执行之后才检查条件。它在检查条件之前至少打印一次输出。C++ do-while 循环用于多次迭代程序的一部分。

它与 while 循环不同,while 循环是入口控制的,它首先检查条件,如果条件为假,则不能运行循环体。当至少需要一次执行,但确切的迭代次数未知时,do-while 循环会有效地执行。

语法

它具有以下语法。

其中,

  1. 条件:在 do-while 循环中,在循环体至少执行一次之后才检查条件。如果条件为真,循环将继续工作,直到条件变为假。如果条件为假,它将退出循环。
  2. 更新表达式:它更新循环变量值,无论是递增还是递减。
  3. 主体:它是程序的主体,包含一组语句,这些语句将在条件保持为真时执行。

C++ 中 do-while 循环的流程图

Cpp Do while loop 1

正如我们在流程图中看到的,使用以下步骤在 C++ 中实现 do-while 循环:

步骤 1:首先,启动 do-while 循环。

步骤 2:在下一步中,它至少执行一次循环体。

步骤 3:之后,它检查给定的条件。如果条件为真,它将继续执行循环体,直到条件变为假。

步骤 4:如果条件为假,它将结束循环体。

步骤 5:最后,它打印输出。

简单的 do-while 循环示例

让我们举一个例子来说明 C++ 中的 do-while 循环。

示例

编译并运行

输出

Hello!!
Hello!!
Hello!!
Hello!!
Hello!!
Hello!!

说明

此 C++ 程序演示如何使用 do-while 循环多次打印“Hello!!”。在将整数变量 'q' 设置为 1 后,循环在检查条件之前开始运行。在每次迭代之后,'q' 在循环内部递增,并打印“Hello!!”。循环继续运行,只要 'q' 小于或等于 6,以确保消息显示六次。由于在执行后测试条件,即使 'q' 的初始值发生变化,循环也会至少运行一次。

嵌套 do-while 循环

在 C++ 编程语言中,一个 do-while 循环内部包含另一个 do-while 循环称为嵌套 do-while 循环。在外部循环进入下一次迭代之前,内部循环必须完成其所有迭代。这表明内部循环在外部循环的每次迭代中完全执行,直到其条件为假。

简单的嵌套 do-while 循环示例

让我们举一个例子来说明 C++ 中的嵌套 do-while 循环。

示例

编译并运行

输出

The outer Loop Iteration count is: 1
   The inner Loop Iteration count is: 1
   The inner Loop Iteration count is: 2
   The inner Loop Iteration count is: 3
The Outer Loop Iteration count is: 2
   The inner Loop Iteration count is: 1
   The inner Loop Iteration count is: 2
   The inner Loop Iteration count is: 3

说明

此 C++ 程序使用嵌套 do-while 循环。内部循环每次迭代运行三次(k 从 1 到 3),而外部循环运行两次(q 从 1 到 2)。在外部循环进入下一次迭代之前,内部循环完成。内部循环记录正在进行的迭代,而外部循环指示一系列内部循环运行的结束。do-while 循环确保即使条件最初为假,循环体也会运行,因为它们在验证条件之前至少运行一次。

无限 do-while 循环

在 C++ 中,如果循环条件始终为真,则会产生无限 do-while 循环。使用 true 条件可确保循环将无限期地继续运行,因为 do-while 循环在验证条件之前至少运行一次。需要一个 break 语句或其他控制机制(例如 return 或 exit())来停止它。

语法

它具有以下语法。

无限 do-while 循环示例

让我们举一个例子来说明 C++ 中的无限 do-while 循环。

示例

编译并运行

输出

This loop will run indefinitely.
This loop will run indefinitely.
This loop will run indefinitely.
This loop will run indefinitely.

说明

此 C++ 程序演示了一个无限 do-while 循环。至少执行一次后,do 块会向控制台打印“This loop will run indefinitely”。它重复地重复,因为循环条件为真,这导致了一个无限循环。向代码添加 break 语句或手动结束程序是停止执行的两种方法。在正常情况下,循环永远不会退出;因此,return 0 语句无法到达。

do-while 循环的示例

1. 使用 do-while 循环计算阶乘的程序

让我们举一个例子来说明如何使用 do-while 循环来确定一个数字的阶乘。

程序

编译并运行

输出

Enter a number: 6
The factorial of a given number 6 is 720

说明

此 C++ 程序使用 do-while 循环来确定给定数字的阶乘。它首先使用用户输入的整数 (num_ber) 将阶乘初始化为 1。在循环开始时将 q 设置为输入的数字后,它将阶乘乘以 q,每次迭代递减 q,直到它达到零。由于 do-while 循环,计算将至少执行一次。之后,程序打印输入数字的计算阶乘。

2. 使用 do-while 循环打印金字塔图案的程序

让我们举一个例子来说明如何使用 do-while 循环打印金字塔图案。

程序

编译并运行

输出

Enter the number of rows: 7
* 
* * 
* * * 
* * * * 
* * * * * 
* * * * * * 
* * * * * * *

说明

此 C++ 程序使用 do-while 循环以直角显示金字塔图案。用户首先输入行数。之后,内部 do-while 循环 (k) 打印每行中的星号,而外部 do-while 循环 (q) 确定有多少行。每次内部循环从 k = 1 到 q 迭代时,它都会打印 *。在打印完一行的星号后,程序移动到下一行并递增 q,直到达到指定的行数。

3. 使用 do-while 循环计算乘法表的程序

让我们举一个例子来说明如何使用 do-while 循环来确定乘法表。

程序

编译并运行

输出

Enter a number: 7
7 * 1 = 7
7 * 2 = 14
7 * 3 = 21
7 * 4 = 28
7 * 5 = 35
7 * 6 = 42
7 * 7 = 49
7 * 8 = 56
7 * 9 = 63
7 * 10 = 70

说明

使用 do-while 循环,此 C++ 程序在接收用户输入的整数后,打印其从 1 到 10 的乘法表。虽然 q 初始化为 1 并用作乘数,但用户输入存储在变量 num_ber 中。在 do 块内,程序将 q 增加 1 并输出乘法结果。直到 q 大于 10,循环才停止运行。由于 do-while 循环,即使 num_ber 为零,乘法表也一定会至少打印一次。


C++ do-while 循环选择题

1. C++ 的 while 循环和 do-while 循环之间主要区别是什么?

  1. do-while 循环可能不运行,但 while 循环至少运行一次。
  2. do-while 循环至少执行一次,但 while 循环可能不执行。
  3. 两个循环在执行上是相同的。
  4. while 循环比 do-while 循环快。
 

答案:b) do-while 循环至少执行一次,但 while 循环可能不执行。


2. 下面的 C++ 程序的输出是什么?

  1. 5 4 3 2 1 0
  2. 3 4 2 1 5
  3. 3 1 4 2
  4. 5 4 3 2 1
 

答案:d) 5 4 3 2 1


3. 循环将执行多少次?

  1. 0
  2. 10
  3. 1
  4. 无限
 

答案:c) 1


4. 下列代码的输出是什么?

  1. 6 4 2
  2. 2 4 6
  3. 6 4
  4. 3 2 1
 

答案:a) 6 4 2


5. 关于 do-while 循环,以下哪项陈述是正确的?

  1. 循环至少执行一次。
  2. 循环可能根本不执行。
  3. 在执行循环体之前检查条件。
  4. 循环永不终止。
 

答案:a) 循环至少执行一次。


下一主题C++ Break 语句