If statement 是否可以仅使用AND、OR或NOT创建IF语句?

If statement 是否可以仅使用AND、OR或NOT创建IF语句?,if-statement,operators,If Statement,Operators,我有一个情况,我需要评估某些变量,但我没有访问,如果。。。其他原因是遗留问题 是否可以仅使用&、|和创建IF评估和基础数学 var1 = 1; var2 = 0; var3 = 1; 我正在尝试使用and、or和not实现的Psuedo示例。没有其他需要 assert[ if (var1 == 1) then { var2 == 1 OR var3 ==1 } ] is true or false 也 我一直在尝试各种组合,但如果有意义的话,我想不出如何基于错误的结果来否定真实。我不需要其他

我有一个情况,我需要评估某些变量,但我没有访问,如果。。。其他原因是遗留问题

是否可以仅使用
&
|
创建IF评估和基础数学

var1 = 1;
var2 = 0;
var3 = 1;
我正在尝试使用and、or和not实现的Psuedo示例。没有其他需要

assert[ if (var1 == 1) then { var2 == 1 OR var3 ==1 } ] is true or false

我一直在尝试各种组合,但如果有意义的话,我想不出如何基于错误的结果来否定真实。我不需要其他,只是如果第一个var1设置为1,那么其他两个都需要为1

因为这些都是数字,我确信我需要做一些计算,但我不能真正找到如果在低水平上如何工作

if ((var1 and (var2 or var3)) or (!var1 and (!var2 and !var3)))
好的,我没有正确理解这个问题。要在没有IF的情况下得到上述结果,您能像这样拆分逻辑吗?我假设它不需要是一个单独的声明

varA = (var1 and (var2 or var3))
varB = (!var1 and (!var2 and !var3))
result = varA or VarB

在对逻辑AND和OR进行短路求值的语言中,您可以使用它们来实现条件控制流,如果需要,则不使用
语句。这似乎不是你正在做的

您似乎想要测试含义。比如说,

var1 => var2 OR var3
如果您的语言支持,那么就完成了。否则,我将向您展示如何使用标准布尔运算符实现

这些可以通过注意到如果不满足左侧的条件来测试,含义将自动得到满足

NOT var1 => holds
此外,如果满足右侧,也满足含义

var2 OR var3 => holds
综合起来:

holds := (NOT var1) OR var2 OR var3
both_hold := holds AND holds2
第二个含义归结为

holds2 := var1 OR ((NOT var2) AND (NOT var3))
应用DeMorgan给出

holds2 := var1 OR NOT (var2 OR var3)
把它们放在一起:

holds := (NOT var1) OR var2 OR var3
both_hold := holds AND holds2
简化

both_hold := ((NOT var1) OR var2 OR var3) AND (var1 OR NOT (var2 OR var3))
识别一种模式

both_hold := var1 XNOR (var2 OR var3)
(在类C语言中,XNOR可以表示为布尔变量上的
=

但是,这些都与您的简单语言描述不匹配

如果第一个var1设置为1,则另一个牵引必须为1

听起来更像

text_holds := (var1 XNOR var2) AND (var2 XNOR var3)

哪种编程语言?我不太明白要求是什么。如果你有if短语,你会怎么写
if(var1==1){???}
Programmin语言是无关的。我没有具体说明。我问的是如何使用逻辑运算符创建条件表达式。你看到标签了吗?所有编程语言都以相同的方式计算和或。我
无法使用IF
开关;)(我知道你会揍我)不能使用switch alsoXNOR看起来不错,但我认为我必须将其完全扩展到基础独占或评估,因为我怀疑XOR是否有效。@ppumkin:什么语言?它不是语言,只是在“冷战”中制造的东西但由于某些原因,重做会花费大量的金钱……这不是
(var1和(var2或var3))还是(!var1和(!var2和!var3))