这个问题在这里已有答案:
想知道for循环是否更好,或者我是否应该坚持使用while循环。如果是这样,为什么或为什么不呢。
srand((unsigned) time(NULL));
bool result;
bool end = false;
int win, lose;
char answer;
win = lose = 0;
while (!end) {
result = play_game();
if (result) {
printf("You win!\n\n");
++win;
} else {
printf("You Lose!\n\n");
++lose;
}
printf("Do you want to play again (y/n) ");
if ((toupper(answer = getchar())) == 'Y') {
end = false;
} else if ((toupper(answer = getchar())) == 'N'){
end = true;
}
}
只要你不限于一定数量的戏剧,我就会使用do-while。
char answer;
do
{
answer = toupper(getchar());
// ...
} while (answer == 'Y');
这里的区别在于do-block将至少运行一次。如果再次满足条件(answer == 'Y'
),那么do-block将再次运行,否则它将会爆发。