【发布时间】:2021-08-29 00:03:03
【问题描述】:
为什么这不起作用?玩家写完一个数字后,它应该引导他们回到主菜单,而不是编译器给出标签 MainMenu not defined c++
int main()
{
while (alive){
MainMenu:
}
}
void InfoPanel(){
int choice;
cout<<"1. Go back"<<endl;
cin>>choice;
if(choice==1){
goto MainMenu;
}
else{
goto MainMenu;
}
}
这就是函数的调用方式
int MainMenuChoice;
cout<<"5.Open info panel"<<endl;
cin>>MainMenuChoice;
switch(MainMenuChoice){
case 1:
BuildingPanel();
break;
case 2:
ArmyPanel();
break;
case 3:
DiplomacyPanel();
break;
case 4:
ActionsPanel();
break;
case 5:
InfoPanel();
goto MainMenu;
break;
default:
cout<<"that doesnt seem to be correct";
goto MainMenu;
}
【问题讨论】:
-
标签有一个函数作用域,所以你不能用标签从一个函数跳转到另一个函数。
-
@mediocrevegetable1 好的,有办法解决吗?
-
@DaugirdasPelanis “修复”?它没有坏
-
@gkhaos 它给出了标签 MainMenu 未定义的错误
-
@DaugirdasPelanis -- 为什么这个 goto 不起作用? -- 放弃使用
goto并使用结构化编程。如果你继续像这样使用goto,你最终会得到spaghetti code,而且很少有人会帮助你处理这种形式的代码。他们不会浪费时间试图解开意大利面。