本文主要是介绍关于goto的一点说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、goto的label是会被顺序执行的
如下例所示,==================error也会被执行。
#include <iostream>void test(bool flag)
{if (flag){printf("--------------- yes.\n");}else {goto error;}error:printf("================error.\n");
}int main()
{std::cout << "Hello World!\n";test(true);return 0;
}
2、通常情况下,goto如何被设计???
一般情况下,我们只有在执行goto语句时,才要去执行其对应的label;
其他情况下我们无需执行label标签下的语句
。
如上例所示,我们应该将其设计为 当flag为true时,执行完对应的操作,然后直接返回,避免去执行后续的label标签
,这才是一个合理的流程。修改代码如下所示:
// ...if (flag){printf("--------------- yes.\n");return; // 直接return, 避免继续执行后续的label语句}
// ...
这篇关于关于goto的一点说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!