gpt4 book ai didi

c - 在没有 OR 运算符的情况下测试相同的条件

转载 作者:太空狗 更新时间:2023-10-29 15:44:23 25 4
gpt4 key购买 nike

我的讲师不希望我们在使用 if 语句时使用 OR 运算符,两个条件测试也不应该在同一行。例如。

if(condition1 || condition2){
statement
}
if(condition1 || condition3){
statement
}

但是我们收到了一个项目,要求我们更新用户可以选择其中一个选项或两个选项的书籍。我尝试使用开关,但我认为它太长了。

代码示例如下。但是,有没有什么方法可以在不使用 case 3 和键入冗余代码的情况下缩短它。

#include  <stdio.h>
#include <stdlib.h>
int main()
{
int opt;

printf("(1) Option 1");
printf("\n(2) Option 2");
printf("\n(3) Both\n");
printf("Choice: ");
scanf(" %d", &opt);
switch(opt){
case 1:
printf("\nThis is option one");
break;
case 2:
printf("\nThis is option two");
break;
case 3:
printf("\nThis is option one");
printf("\nThis is option two");
break;
}
return 0;
}

最佳答案

您可以使用 De Morgan's laws避免或。相关的

not (A or B) = not A and not B

当转换为你的情况时,它变成了

A or B = not (not A and not B)

这是展示这个逻辑的真值表

<表类="s-表"><头>ABA或B不是A不是B不是A也不是B不是(不是A也不是B)<正文>真真真错误错误错误真真错误真错误真错误真错误真真真错误错误真错误错误错误真真真错误

所以考虑到这个条件

if(condition1 || condition2)

变成

if (! (!condition1 && !condition2) )

关于c - 在没有 OR 运算符的情况下测试相同的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53393541/

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