私に答える前に、私は現在 C++ を学んでおり、C++ についての知識しかありません。
例を次に示します。ユーザーには言語の選択が表示され、ユーザーは言語の左側に数字を入力して選択する必要があります。そうしないと、再び選択に戻ります。
だから私は考えを持っています:メイン関数を最初に置き、言語関数を最後に置きます。しかし問題は、メイン関数が言語関数の前にあるため、メイン関数が言語関数を見つけることができず、プログラムを終了することです (もちろん、この問題のために、ソース コードをコンパイルすることはできません)。
コード例は次のとおりです。
int main() {
language(); // The main function redirect user to the language function
}
int language() { // The language() function
std::cout << "1 for cookie!";
std::cin >> choice; // Ask user for choice
if (choice == 1) {
choice1(); // If the choice is 1, user will be redirected to choice1() function
} else {
main() // Otherwise user will be redirected to main and of course, redirect to language() function again
}
}
上記の問題のため、プロジェクトを再ビルドすると、Code::Blocks IDE から警告が表示されました。
エラー: 'language' はこのスコープで宣言されていません
ユーザーを関数から別の関数にリダイレクトする他の方法はありますか?
編集:現在の回答により、無限ループに陥りました。これは、私が見たい結果ではありません。私が見たい結果は、ユーザーが無効な値を入力した場合、ユーザーが現在いる機能にユーザーをリダイレクトし、コードは一度だけ実行する必要があることです。(無限ループではないことを意味します)