我正在尝试学习如何用 C 编程并偶然发现了一个似乎应该是一个简单的解决方法的问题,但它给了我比我预期的更多的问题。我正在尝试创建一个数字猜谜游戏,您有 3 次猜测数字的机会,但我的问题是,当猜到正确答案时,Do While 循环不会中断。这是功能:
void Win_Search(int lucky[],const int MAX, int user_entry, int i)
{
int j=0;
do {
j++;
printf("Please enter a number between 0 and 100\n");
scanf("%d",&user_entry);
for(i = 0; i < MAX; i++)
{
if(user_entry==lucky[i])
{
printf("winner\n");
}
}
} while(user_entry==lucky[i]||j<3);
}
基本上它应该遍历数组 lucky[i] 并检查 user_entry 是否等于数组中的 20 个数字中的任何一个。截至目前,它循环通过,识别是否已从数组中选择了中奖号码,但不会从数组中中断。
当我将其更改为
}while(user_entry!=lucky[i]||j<3);
它完全忽略了计数器,只是永远循环。
我不想使用 break 因为我读到的所有关于它的内容都在谈论它是糟糕的编程实践。有没有另一种方法可以打破,或者只是犯了一个导致这个问题的错误。
提前致谢。