我创建了一个简单的猜谜游戏程序.我的问题是,一旦用户输入错误的数字,我不确定如何将程序循环回程序的开头.我希望程序继续向用户询问一个数字,直到他做对了.有人能帮我吗?
#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)
这看起来像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)
希望这可以帮助!