gpt4 book ai didi

c - do while 循环问题

转载 作者:太空宇宙 更新时间:2023-11-04 05:05:11 24 4
gpt4 key购买 nike

我在编写的剪刀石头布游戏的 do while 循环中遇到了问题。它永远不会跳出循环。我已经尝试了一切,但似乎没有任何效果。一切看起来合乎逻辑,但也许我遗漏了一些东西。有人有主意吗?虽然我知道一个简单的修复方法是向每个 if 语句添加一个 break,但我想了解为什么循环本身不起作用。

#include <stdio.h>
#include <stdlib.h>

int main(){

int rounds,
wins,
max;

do {
printf("Best 2 out of 3 or Best 3 out of 5? (Enter 3 or 5)\n");
scanf_s("%d", &rounds);
printf("%d\n\n", rounds);
if (rounds == 3){
wins = 2;
max = 3;
puts("OK!");
}
else if (rounds == 5){
wins = 3;
max = 5;
puts("\nOK!");
}
else {
printf("Please enter a valid option.\n\n");
}
} while (rounds != 3 || rounds != 5);

system("pause");
}

最佳答案

这就是为什么测试(谓词)应该写成正逻辑的原因。应用德摩根定律(对偶性)转换

rounds != 3 || rounds != 5

进入

!(rounds == 3 && rounds == 5)

这显然简化为

true

但不要难过。 1998 年,我修复了这种类型的商业桌面业务应用程序中的一个缺陷!

关于c - do while 循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26305049/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com