我在试着理解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/