我可以使用 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();
}
您不能用于goto
分支到不同的功能;agoto
只能在当前函数内分支。您只需调用函数x()
和y()
.
从您的问题来看,您似乎正在学习 C,并且您通常是编程的新手。如果是这种情况,我强烈建议你遵循一本好书。对于新手来说,C 不是一种简单的边做边学的好语言。它有很多陷阱,很容易在错误的位置添加逗号或分号,并且有一个完美运行(即编译和运行)的程序,它没有你所期望的!C 不像 Java 或 Python 那样牵着你的手。
至于你的问题,这个参考可能很有用。
另一个建议:goto
尝试学习它的语法和语义,然后尽量避免在“真正的代码”中使用它,直到你成为专家 C 程序员。几乎任何程序都可以在没有goto
s 的情况下创建。当一个专家程序员求助于goto
s 可能是因为:
goto
手头的算法非常棘手,属于使代码更具可读性的罕见情况之一。在大多数情况下,goto 是一个坏主意,通常可以避免。在此示例中,可以这样做:
if (input == 1)
{
y();
}
else
{
x();
}
永远不要使用 goto。它丑陋,陈旧并且不必要地混淆了事物。
int main() { /*assume that all var are declared */
scanf("%d",&input);
if(input == 1) {
y();
} else if (input == 2) {
x();
}
}