猜猜游戏程序

use*_*913 1 c

我创建了一个简单的猜谜游戏程序.我的问题是,一旦用户输入错误的数字,我不确定如何将程序循环回程序的开头.我希望程序继续向用户询问一个数字,直到他做对了.有人能帮我吗?

#include <stdio.h>

int main (void) {
    int value = 58;
    int guess;

    printf("Please enter a value: ");
    scanf("%i", &guess);

    if (guess == value) {
        printf("Congratulations, you guessed the right value");
    }
    else if (guess > value) {
        printf("That value is too high. Please guess again: ");
        scanf("%i", &guess);
    }
    else if (guess < value) {
        printf("That value is too low. Please guess again: ");
        scanf("%i", &guess);
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

tem*_*def 5

这看起来像while循环和break声明的好地方.您可以使用while这样的循环无限循环:

while (true) {
    /* ... /*
}
Run Code Online (Sandbox Code Playgroud)

然后,一旦某个条件成立并且您想要停止循环,您可以使用该break语句退出循环:

while (true) {
     /* ... */

     if (condition) break;

     /* ... */
}
Run Code Online (Sandbox Code Playgroud)

这样,break当用户猜对时,您可以退出循环.

或者,您可以使用一个do ... while循环,其条件检查循环是否应该退出:

bool isDone = false;
do {
    /* ... */

    if (condition) isDone = true;

    /* ... */
} while (!isDone);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!