鉴于b是布尔变量,表达式(!b)和(b == false)是否相同?
这是我到目前为止所处的问题:
!b - 如果b为真则返回[FALSE响应]或如果b为假则返回[TRUE响应].
在这种情况下,声明一个布尔变量'b'会将其设置为true,因此使!b返回false.
我想我需要完成的问题就是知道b是否最初是真的,我认为它是什么?
希望这是有道理的,有人可以为我解决这个问题吗?
编辑:这是我的导师的问题.我被要求判断这个陈述是真还是假:"表达式(!b)和(b == false)是等价的,其中b是一个布尔变量"
当我要求帮助时,这里有极其有用的神秘线索:
使用!b的情况是这些表达式应该为b的所有值提供相同的结果,以使语句正确.即如果b为假,则两个表达式给出相同的结果,如果b为真,则两个表达式给出相同的结果.你需要看看这两个表达式.
我需要知道如何在语句中评估逻辑AND和OR运算符.我找到了一些试图解释它的网站,但我无法做出他们的头脑或尾巴.我知道我可以用大括号来订购它我想要的但我想知道它是如何工作的.
例如会
if( b1 && b2 || b3 )
Run Code Online (Sandbox Code Playgroud)
被评估为:
(b1 && b2) || b3
Run Code Online (Sandbox Code Playgroud)
或作为:
b1 && (b2 || b3)
Run Code Online (Sandbox Code Playgroud) 我使用三元运算符,但经常想要检查没有else子句的东西.我想知道是否有任何简短的方法可以省略这一点.
我发现了
a ? b : {}
Run Code Online (Sandbox Code Playgroud)
作为替代if (a) {b},可以保存2个字符,但不能
a ? b :
Run Code Online (Sandbox Code Playgroud)
我认为这是有道理的,它是一个三元运算符.
我唯一的想法是那些空的花括号有点难看,有没有其他方法来指定一个空白的:语句?
或者,是否有二元?运算符?我在规范中翻找过,但看不出我是如何使用二进制逻辑运算符的,我猜这if就是为了什么.
有没有办法使用二进制逻辑运算符来表达{}的条件或简写?我知道这可能是3个角色的懒惰高度,但我只是好奇,如果有人有任何技巧可以分享.
javascript binary-operators ternary-operator logical-operators
我有三个 if语句:
if (!(a == 0 && b == 0)) {...}
if (!(a == 0 && b != 0)) {...}
if (!(a != 0 && b != 0)) {...}
我想将它们组合在一个代码块中,例如方法.
如果一个人运行,我不希望其他语句运行.如果我想避免提出一些好的逻辑,有一些解决方法,但我想知道是否有一种美妙的方式来编写它.
!在这个条件中使用not运算符()给了我:
"未捕获的SyntaxError:意外的令牌!"
if (text.includes(input[j])) {
$(Messages[i]).hide();
}
else if !(text.includes(input[j])) {
$(Messages[i]).show();
}
Run Code Online (Sandbox Code Playgroud)
为什么不在!这里工作?
while (!EOLorEOFfound) {
int ch == fgetc(stdin);
EOLorEOFfound = ch == '\n' || ch == EOF;
}
Run Code Online (Sandbox Code Playgroud)
注意:EOLorEOFfound是bool类型.
StackOverFlow用户向我提供了有关另一个问题的答案.看这里:
现在,我一直在困惑最后一行代码中的表达式实际上是什么.我怀疑它可能是某种形式的三元运算符?
在以下C代码中没有得到预期的输出
main(){
int i=0,j=-2,k=0,m;
if((!i||--j&&k++)&&(i++||j++&&!k++))
{
printf("i=%d j=%d k=%d",i,j,k);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我在编译器中得到的输出为:
i=1 j=-1 k=1
Run Code Online (Sandbox Code Playgroud)
但是我不明白这里到底发生了什么。
我认为if语句不应运行,因为其参数为false
注意第一个括号 (!i||--j&&k++)
因为!i=1括号中的任何一个在OR运算符下均为1 ,所以此括号为true。
输出值变为: i=0, j=-3, k=1
现在注意第二个括号: (i++||j++&&!k++)
这边有 ( 0 || -3 && !1) = 0, false
当方括号被分隔时&&,if语句的整个参数变为false。
请向我解释我的论点错了。我是C的新手
我很好奇Python中“x is not True”的优先级。起初,我认为它意味着“!= True”,但后来我认为“not True”肯定比“is not”具有更高的优先级。然而,以下内容似乎表明了后者:
>>> 4 is not True
True
>>> not True
False
>>> 4 is False
False
>>> 4 is (not True)
False
Run Code Online (Sandbox Code Playgroud)
看来Python将“is not True”解释为单个表达式,而不是相当于“is False”的“is (not True)”。
我对Python编程并不陌生,但之前也没有深入思考过这个问题。我可以安全地假设“is not”本身就是一个具有比“not True”更高的解析优先级的运算符吗?
我正在尝试使用逻辑或赋值 ||=。我的代码行很简单
parish.email ||= parishB.EMAIL
Run Code Online (Sandbox Code Playgroud)
虽然我正在得到
/home/joao/dev/geoptapi/prepareServer.js:278
parish.email ||= parishB.EMAIL
^^^
SyntaxError: Unexpected token '||='
Run Code Online (Sandbox Code Playgroud)
我的节点版本是v14.17.0
not 1==2 or 3==3 and 5==6
Run Code Online (Sandbox Code Playgroud)
这是如何评价的?我知道顺序不是、、、或(从最强到最弱)
所以如果我不首先这样做,步骤如下:
not 1==2 or 3==3这相当于FalseFalse并且False等于False但我很困惑,因为顺序不是, and , or
那么为什么我要在and之前先做or呢?
c ×2
java ×2
javascript ×2
python ×2
boolean ×1
c++ ×1
flow-control ×1
if-statement ×1
logic ×1
node.js ×1
not-operator ×1
syntax ×1