为什么这个表达式评估为0?

Sgt*_*ike 2 matlab logic boolean-logic

为什么表达式:

-5 < -3 < -1
Run Code Online (Sandbox Code Playgroud)

在MATLAB中评估为0?每个单独的语句都评估为true,所以我很困惑为什么它的评估为false.

非常感谢.

Dra*_*18s 14

因为它看起来像这样:

(-5 < -3) < -1
Run Code Online (Sandbox Code Playgroud)

-5 <-3为真,也是1.

1 <-1是假,也是0.

最终答案:0.


小智 10

MATLAB从小到右操作员从左到右操作.

所以你正在评估

-5 < -3 < -1
TRUE < -1
FALSE
Run Code Online (Sandbox Code Playgroud)

  • 不,离开它.这个答案很好,因为您已链接到有关行为的官方文档.获得最高票数的答案是出于纯粹的逻辑,但除了解释结果如何产生之外,您还提供了记录此行为的官方链接.如果我是OP,我个人会接受这个答案. (3认同)
  • @ Draco18s实际上,在Python中,执行`-5 <-3 <-1`相当于执行`-5 <-3 && -3 <-1`,这将评估为'True` [link - start at*Comparisons可以任意链接*...](https://docs.python.org/2/reference/expressions.html#not-in).我们不能假设这种假设行为在所有编程语言中都是相同的.这就是为什么我更喜欢这个答案,因为它与官方文档相关联.FWIW,我也给予好评的答案,因为它很快就到了点,但你不能从你的回答也是如此的所有编程语言的逻辑假设. (2认同)