【发布时间】:2012-10-23 22:30:51
【问题描述】:
我正在尝试学习如何使用 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,因为我读到的所有关于它的内容都在谈论它是糟糕的编程习惯。有没有另一种方法可以打破,或者只是犯了一个导致这个问题的错误。
提前致谢。
【问题讨论】:
-
通过引用传递 user_entry,换句话说,使用指针。
-
标签: c loops while-loop