Hur*_*ist 4 c++ label goto function
所以我在使用一些C++时搞错了,并且使用一些看起来像这样的代码得到了前面提到的错误:
#include <iostream>
using namespace std;
char foodstuffs;
void fruit()
{
cin>>foodstuffs;
switch(foodstuffs)
{
case 'a': goto foo; break;
case 'b': goto fooo; break;
}
}
int main()
{
cout<<"What do you want to eat? (a/b)";
fruit();
foo: cout<<"You eat an apple.";
fooo: cout<<"You eat a banana.";
}
Run Code Online (Sandbox Code Playgroud)
确切的代码要复杂得多,但这只是为了向您展示我得到的错误.
现在我意识到每个人都出于某种原因鄙视"goto"声明,但是我的实际代码中充满了很多东西,我没有时间/耐心回过头来改变它们.另外,我是一个新手程序员,我发现很难使用的东西和标签.
我的问题是如何预定义这些标签,以便函数fruit()知道它们是什么?另外,我需要在不将标签移出主功能的情况下执行此操作.
该goto语句只能转到本地定义的标签,它不能跳转到其他功能.
因此,main不会引用标签,并且goto语句fruit中将找不到标签.