我在试着理解C代码。在某些方面有:

for ...{
    if condition{
       a=1;
       break;
    }
}

在更高版本中更改为:
for ...{
    if condition{
       goto done;
    }
}
done: a=1;

在我看来,两种情况下的结果应该是一样的,但不会发生。你知道为什么吗?
更正:修复方法是:
for ...{
    if condition{
       goto done;
    }
}

            goto notdone;
            done:
                ok=0;
            notdone:

最佳答案

这取决于for循环是否有其他退出条件。
在第一个示例中,a=1仅发生在IF语句中的特定退出条件下。
在第二个示例中,在退出循环的所有场景中发生。它只能使用a=1语句或其他return语句来规避。

关于c - 关于C语言中的“goto”的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4298083/

10-11 23:12
查看更多