混淆是否使用do-while或while循环进行骰子游戏

时间:2017-12-20 20:39:02

标签: loops while-loop do-while

想知道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;
    }
}

1 个答案:

答案 0 :(得分:0)

只要您不限于一定数量的游戏,我就会使用do-while。

NULL

这里的区别在于do-block将在至少一次运行。 如果再次满足条件(char answer; do { answer = toupper(getchar()); // ... } while (answer == 'Y'); ),那么将再次运行do-block,否则它将会爆发。