3.8 goto 语句与标号

建议少用,但不是不能用。

goto 语句是一种在程序中实现无条件跳转的控制流语句。在 C 语言中,你可以使用 goto 语句将程序的控制权直接转移到指定标签(label)处。然而,goto 语句在结构化编程中的使用受到争议,因为它可能导致代码变得难以理解和维护。大多数情况下,可以使用更结构化的控制流语句(如 ifwhilefor)来替代 goto

下面是一个简单的示例,演示了 goto 语句和标签的使用:

3.8.1 goto-label.c
#include <stdio.h>

int main() {
    int i = 0;

    // 定义标签
    start:

    if (i < 5) {
        printf("%d\n", i);
        i++;
        goto start; // 跳转到标签 start
    }

    return 0;
}

在上述示例中,使用 goto 语句和标签 start 实现了一个简单的循环。每次循环打印 i 的值,然后递增 i,再次跳转到 start 标签。这样会一直循环打印 04 的值。

虽然 goto 可以在某些情况下提供一种简便的控制流方式,但过度使用它可能导致代码难以理解。在大多数情况下,更好的选择是使用更结构化的控制流语句。

Last updated