我想了解一个C代码.在某些方面,有:
for ...{
if condition{
a=1;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
在更高版本中更改为:
for ...{
if condition{
goto done;
}
}
done: a=1;
Run Code Online (Sandbox Code Playgroud)
从我的观点来看,两个版本都应该给出相同的结果,但它不会发生.你知道为什么吗?
更正:修复方法是:
for ...{
if condition{
goto done;
}
}
goto notdone;
done:
ok=0;
notdone:
Run Code Online (Sandbox Code Playgroud)
这取决于for循环是否有任何其他退出条件.
在第一个示例中,a=1仅在if语句中针对该特定退出条件发生.
在第二个示例中,a=1发生在退出循环的所有场景中.它只能使用return声明或其他goto声明来规避.
| 归档时间: |
|
| 查看次数: |
174 次 |
| 最近记录: |