如何使用Goto功能

时间:2013-08-23 18:02:34

标签: c function goto

我可以使用Goto跳转到其他功能吗?例如

void x(){
 printf("hello");
}

void y(){
 printf("hi");
}

int main(){     /*assume that all var are declared */

 scanf("%d",&input);
  if(input == 1) goto y();
  else(input == 2) goto x();
}

4 个答案:

答案 0 :(得分:3)

您不能使用goto分支到不同的功能; goto只能在当前函数中分支。您只需调用函数x()y()即可。

答案 1 :(得分:0)

在大多数情况下,goto是一个坏主意,通常可以避免。在这个例子中,它可以这样做:

if (input == 1)
{
 y();
}
else
{
 x();
}

答案 2 :(得分:0)

从你的问题看来,你正在学习C,而且你是一般的编程新手。如果是这种情况,我强烈建议您关注一本好书。对于新手来说,C不是一个简单的边做边学的好语言。它有很多陷阱,很容易在错误的地方添加一个逗号或分号,并且具有完美的功能(即编译和运行)程序,它不会对您的期望产生任何影响! C不像Java或Python那样牵着你的手。

至于你的问题,this参考可能有用。

另一个建议:与goto一起学习它的语法和语义,然后尝试避免在“真实代码”中使用它,直到你成为专家C程序员。几乎任何程序都可以在没有goto的情况下创建。当专家程序员转向goto时可能是因为:

  • 它正在实施一些优化技巧,或
  • 手头的算法非常棘手,属于goto使代码更具可读性的极少数情况之一。

答案 3 :(得分:-2)

永远不要使用goto。它丑陋,陈旧,不必要地混淆了事物。

int main() {     /*assume that all var are declared */

    scanf("%d",&input);
    if(input == 1) {
        y();
    } else if (input == 2) {
        x();
    }
}