跳转到内容

C 语言 Do While 循环

来自代码酷


Do While循环是C语言中一种控制流结构,它允许代码块在满足特定条件时重复执行。与While循环不同,Do While循环会先执行一次代码块,然后再检查条件,因此它至少会执行一次循环体。

语法[编辑 | 编辑源代码]

Do While循环的基本语法如下:

do {
    // 循环体代码
} while (条件表达式);
  • do:关键字,表示循环的开始。
  • 循环体:需要重复执行的代码块。
  • while (条件表达式):在每次循环结束后检查的条件。如果条件为真(非零),循环继续;否则,循环终止。

执行流程[编辑 | 编辑源代码]

Do While循环的执行流程可以用以下步骤描述:

flowchart TD A[开始] --> B[执行循环体] B --> C{条件为真?} C -- 是 --> B C -- 否 --> D[结束]

1. 程序进入Do While循环。 2. 立即执行循环体内的代码。 3. 检查条件表达式:

  * 如果条件为真,返回步骤2。
  * 如果条件为假,退出循环。

示例代码[编辑 | 编辑源代码]

以下是一个简单的示例,展示如何使用Do While循环打印数字1到5:

#include <stdio.h>

int main() {
    int i = 1;
    do {
        printf("%d\n", i);
        i++;
    } while (i <= 5);
    return 0;
}

输出:

1
2
3
4
5

解释[编辑 | 编辑源代码]

1. 变量`i`初始化为1。 2. 进入`do`块,打印`i`的值(1),然后`i`递增到2。 3. 检查条件`i <= 5`(2 ≤ 5为真),继续循环。 4. 重复上述步骤,直到`i`变为6,此时条件`6 <= 5`为假,循环终止。

与While循环的区别[编辑 | 编辑源代码]

Do While循环和While循环的主要区别在于条件检查的时机:

  • While循环:先检查条件,再执行循环体(可能一次都不执行)。
  • Do While循环:先执行循环体,再检查条件(至少执行一次)。

以下代码对比两者的行为差异:

#include <stdio.h>

int main() {
    int i = 10;

    // While循环示例
    while (i < 10) {
        printf("While: %d\n", i); // 不会执行
        i++;
    }

    // Do While循环示例
    do {
        printf("Do While: %d\n", i); // 会执行一次
        i++;
    } while (i < 10);

    return 0;
}

输出:

Do While: 10

实际应用场景[编辑 | 编辑源代码]

Do While循环特别适合以下情况:

1. 用户输入验证:确保用户至少输入一次数据,然后根据输入决定是否继续。

   #include <stdio.h>

   int main() {
       char choice;
       do {
           printf("是否继续?(y/n): ");
           scanf(" %c", &choice); // 注意空格跳过空白字符
       } while (choice != 'y' && choice != 'n');
       return 0;
   }

2. 菜单驱动程序:显示菜单并等待用户选择,直到选择退出选项。

   #include <stdio.h>

   int main() {
       int option;
       do {
           printf("\n1. 选项1\n2. 选项2\n3. 退出\n选择: ");
           scanf("%d", &option);
           // 处理选项...
       } while (option != 3);
       return 0;
   }

3. 游戏循环:确保游戏至少运行一帧后再检查退出条件。

常见错误与注意事项[编辑 | 编辑源代码]

1. 忘记分号:Do While循环末尾必须有分号。

   do {
       // 代码
   } while (condition) // 错误:缺少分号

2. 无限循环:如果条件永远为真,循环将无限执行。

   do {
       // 代码
   } while (1); // 无限循环

3. 变量未初始化:循环条件中使用的变量必须在循环前正确初始化。

数学表达[编辑 | 编辑源代码]

Do While循环可以表示为: {执行循环体如果 P(x) 为真,重复上述步骤 其中P(x)是条件表达式,x是循环变量。

总结[编辑 | 编辑源代码]

  • Do While循环保证循环体至少执行一次。
  • 适用于需要先执行操作再检查条件的场景。
  • 注意避免无限循环和语法错误。
  • 在用户交互和菜单系统中特别有用。

通过理解Do While循环的结构和应用场景,你可以更有效地控制程序的执行流程。