我可以使用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();
}
答案 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();
}
}