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();
}
あなたの質問から、あなたは C を学んでいるようで、プログラミング全般の初心者です。その場合は、良い本に従うことを強くお勧めします。C は、初心者が単に実行して学習するのに適した言語ではありません。これには落とし穴がたくさんあり、コンマやセミコロンを間違った場所に追加してしまうと、プログラムが完全に機能 (つまり、コンパイルと実行) しても、期待したことは何も行われません! C は、たとえば Java や Python のように手を握ることはできません。
あなたの質問に関しては、このリファレンスが役立つ可能性があります。
もう 1 つのアドバイス: で遊んでgoto
その構文とセマンティクスを学び、専門の C プログラマーになるまで「実際のコード」で使用しないようにしてください。ほとんどすべてのプログラムは、s なしで作成できますgoto
。熟練したプログラマーがgoto
s に頼る理由は、おそらく次のいずれかです。
goto
手元のアルゴリズムは非常にトリッキーであるため、コードが読みやすくなるまれなケースの 1 つに該当します。ほとんどの場合、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();
}
}