C 语言中的 switch 语句和 while 循环详解


C 语言中的 switch 语句和 while 循环详解

switch 语句和 while 循环是 C 语言中常用的控制结构,用于根据不同的条件执行不同的代码块,以及重复执行一段代码。下面将详细解析它们的用法和功能。


switch 语句

switch 语句用于基于变量的值选择要执行的代码块。它是多分支选择语句的实现方式之一。

语法

switch (expression) {
    case constant1:
        // 当 expression 的值等于 constant1 时执行的代码
        break;
    case constant2:
        // 当 expression 的值等于 constant2 时执行的代码
        break;
    // 你可以添加任意多个 case 分支
    default:
        // 当 expression 不等于任何一个已定义的常量时执行的代码
}
  • expression 是一个整数表达式(整型或字符型)。
  • case 关键字后面跟一个常量值。
  • break 语句用于跳出 switch 语句。如果没有 break,程序将继续执行后面的 case 分支。
  • default 分支是可选的,当 expression 不匹配任何 case 时执行 default 下的代码。

示例

#include <stdio.h>

int main() {
    int day = 3;

    switch (day) {
        case 1:
            printf("Monday\n");
            break;
        case 2:
            printf("Tuesday\n");
            break;
        case 3:
            printf("Wednesday\n");
            break;
        case 4:
            printf("Thursday\n");
            break;
        case 5:
            printf("Friday\n");
            break;
        case 6:
            printf("Saturday\n");
            break;
        case 7:
            printf("Sunday\n");
            break;
        default:
            printf("Invalid day\n");
    }

    return 0;
}

输出

Wednesday

while 循环

while 循环用于重复执行一段代码,只要指定的条件为真(非零)。

语法

while (condition) {
    // 循环体
}
  • condition 是一个表达式,循环在每次迭代开始前计算该表达式。
  • 如果 condition 为真(非零),执行循环体,然后再次检查条件。
  • 如果 condition 为假(零),终止循环。

示例

#include <stdio.h>

int main() {
    int count = 0;

    while (count < 5) {
        printf("Count: %d\n", count);
        count++;
    }

    return 0;
}

输出

Count: 0
Count: 1
Count: 2
Count: 3
Count: 4

do-while 循环

do-while 循环类似于 while 循环,但 do-while 循环至少执行一次,因为条件是在循环体之后检查的。

语法

do {
    // 循环体
} while (condition);

示例

#include <stdio.h>

int main() {
    int count = 0;

    do {
        printf("Count: %d\n", count);
        count++;
    } while (count < 5);

    return 0;
}

输出

Count: 0
Count: 1
Count: 2
Count: 3
Count: 4

while 循环和 switch 语句结合使用

有时你可能需要在循环内使用 switch 语句。下面是一个结合使用的示例。

示例

#include <stdio.h>

int main() {
    int count = 0;
    char option;

    while (count < 3) {
        printf("Enter option (a/b/c): ");
        scanf(" %c", &option);

        switch (option) {
            case 'a':
                printf("Option A selected\n");
                break;
            case 'b':
                printf("Option B selected\n");
                break;
            case 'c':
                printf("Option C selected\n");
                break;
            default:
                printf("Invalid option\n");
        }

        count++;
    }

    return 0;
}

输出

Enter option (a/b/c): a
Option A selected
Enter option (a/b/c): b
Option B selected
Enter option (a/b/c): x
Invalid option

在这个示例中,程序会提示用户输入一个选项,使用 switch 语句根据输入执行相应的代码,然后继续循环直到输入三次为止。


总结

  • switch 语句用于根据一个变量的值选择要执行的代码块。
  • while 循环用于重复执行一段代码,只要指定的条件为真。
  • do-while 循环至少执行一次,然后根据条件决定是否重复执行。

通过合理使用这些控制结构,可以编写出功能丰富且灵活的 C 程序。


原文链接:codingdict.net