首页 > 解决方案 > Julia 中的条件语句

问题描述

我定义了两个非空向量:

tmp = [1, 2, 3]
tmp2 = [1, 2]

当我输入

size(tmp, 1) > 0 

输出是true。但是当我写

size(tmp, 1) > 0 & size(tmp2, 1) > 0

它返回假。当我将每个术语放在括号中时,如

(size(tmp, 1) > 0) & (size(tmp2, 1) > 0 )

它按预期返回true。但我不明白为什么size(tmp, 1) > 0 & size(tmp2, 1) > 0返回false?

标签: julia

解决方案


这是两件事的结果。首先是运算符优先级。您编写的代码被解析为size(tmp, 1) > (0 & size(tmp2, 1)) > 0(即作为链式比较)。

然而,更大的问题是您可能想使用&&而不是&. &是按位与,&&而是逻辑与。因此,&&这里有您期望的优先级。


推荐阅读