C++:将代码重定向到特定位置

C++: Redirect code to certain position

本文关键字:定位 位置 重定向 代码 C++      更新时间:2023-10-16

我对C++很陌生。

如何将代码"重定向"到某个位置?

基本上,我应该在这里放什么而不是评论行:

if ( N>1 ) {
  // What should be here to make the code start from the beginning? 
}
else {
  // What should be here to make the code start from certain point?
}

我知道C++不是脚本语言,但是如果代码是作为脚本编写的,我如何重定向它?

谢谢

goto命令会做你想做的事,但在礼貌圈子里通常不受欢迎:-)

有它的位置,但你可能最好学习结构化编程技术,因为过度使用goto往往会导致我们所说的意大利面条代码,难以理解、遵循和调试。

如果你的任务是对代码进行最小的更改,听起来它可能已经写得不好了,goto可能是最好的解决方案:

try_again:
n = try_something();
if (n > 1)
    goto try_again;

使用结构化编程,您将拥有以下内容:

n = try_something();
while (n > 1)
    n = try_something();

您可能看不到这两种情况之间的太大区别,但那是因为它很简单。如果你最终得到你的标签和goto语句的严重分离,或者四十二个不同的标签,你会乞求结构化版本。

使用函数、循环等来控制应用程序的"流"。将代码视为可重用的部分,任何要重用的内容都应该放在函数中或循环访问。

下面是一个示例:

void main()
{
    int i = 0;
    SayHello();       
    if (i < 1)
    {
         SayHello();
         i++;
    }
    else
    {
         SayGoodbye();
    }
}
void SayHello()
{
    cout << "Hello" << endl;
}
void SayGoodbye()
{
    cout << "Goodbye" << endl;
}

我不完全确定"重定向"是什么意思,但请考虑以下几点:

if (N > 1) {
   speak();
} else {
   do_something_else();
}

正如Paxdiablo已经说过的那样,goto方法不是好的做法。最好使用执行特定操作的函数,这样调试更容易,并且有人可以实际遵循您的代码正在做什么(或者至少它应该做什么)。