辉夜Ayn 2023-12-25 14:08 采纳率: 0%
浏览 6

c的goto可以用变量存储目的地吗?

比如变量为where。
有三个要跳转的目的地:w1,w2,w3。

可以直接:
where=w1
goto where;
吗?

还是只能:
switch(where)
case 1:goto w1
case 2:goto w2
case 3:goto w3

  • 写回答

1条回答 默认 最新

  • 普通网友 2023-12-25 14:18
    关注

    在C语言中, goto 语句的目标标签必须是在当前作用域内可见的标识符。这意味着你不能使用变量作为 goto 语句的目标。
    因此,你不能直接使用变量来存储 goto 语句的目标。你需要使用 switch 语句或其他条件语句来根据变量的值选择相应的 goto 目标。
    以下是使用 switch 语句的示例:

    switch(where) {
        case 1:
            goto w1;
        case 2:
            goto w2;
        case 3:
            goto w3;
        default:
            // 处理无效的目标值
            break;
    }
     // 标签定义
    w1:
        // 目标w1的代码
        // ...
        goto end;
     w2:
        // 目标w2的代码
        // ...
        goto end;
     w3:
        // 目标w3的代码
        // ...
        goto end;
     end:
        // 代码继续执行的地方
    
    

    请注意,使用 goto 语句可能会导致代码不易理解和维护,因此请谨慎使用。在大多数情况下,使用结构化的控制流程(如 if 语句、循环语句)更易读和可维护。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月25日