ゲームが終わった後にもう一度プレイするかどうかをユーザーに尋ねるゲームを (C で) 書きたいとしましょう。
それを書くには2つの明白な方法があります。
初め:
int main(void)
{
/* variable declarations and initializations */
do { /* optionally multiple games */
/* game code here */
........
/* prompt user wheter he wants to play again */
bool playagain = playagain();
} while(playagain);
.....
}
そして2番目:
int main(void)
{
/* variable declarations and initializations */
game_start: /* optionally multiple games */
/* game code here */
........
/* prompt user wheter he wants to play again */
bool playagain = playagain();
if (playagain)
goto game_start;
.....
}
一般的に goto ステートメントを使用するのは悪い考えであることはわかっていますが、ここでは、コードをより明確にし、余分なインデント レベルから解放されると思います。
だから私の質問は、この特定の例は goto ステートメントを使用する適切な方法と見なされますか、それともとにかくそれを避けるべきですか?