4

だから私はいくつかの 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.";
}

正確なコードはもっと複雑ですが、これは私が得たエラーを示すためのものです。

なんらかの理由で誰もが「goto」ステートメントを軽蔑していることに気づきましたが、実際のコードは非常に多くの goto でいっぱいであるため、戻ってすべてを変更する時間/忍耐力がありません。また、私は一種の初心者プログラマーで、goto とラベルは非常に使いやすいと感じています。

私の質問は、関数 fruit() がそれらが何であるかを認識できるように、これらのラベルを事前に定義するにはどうすればよいですか? また、メイン関数からラベルを移動せずにこれを行う必要があります。

4

4 に答える 4

0

goto現在の関数の外に移動するために使用することはできません。関数から何かを返してみて、それを if else 条件で使用してください。

于 2013-05-31T09:33:35.890 に答える