使用Julia中的逻辑运算符控制流程

时间:2016-03-13 19:17:26

标签: while-loop julia boolean-expression

我正在尝试在Julia中使用whileor条件运行and周期。

在Python中,我可以做到

while something and somethingelse:
    staff happens

or同样如此。但在朱莉娅,即使使用|&运算符,它似乎也不起作用,即

t=0
while s != 0 & d <= N
   t+=1
   something happens
end

对于&条件,我使用if brake条件使其成功。

t=0
while s != 0
  something happens
  t+=1
  if d>N
    break
  end
end

但我不知道如何让它适用于or

如果可以在一行中完成,甚至更好。

1 个答案:

答案 0 :(得分:4)

在Julia中&实际执行按位 - 而|执行按位或。这些运算符比比较运算符higher precedence所以您的条件在此处评估为

s != (0 & d) <= N

这可能不是预期的。

您需要使用&&||来代替Python的andor运算符。这些运算符执行短路评估(documentation)。

与在Python中一样,比较(如!=<=)的优先级高于布尔运算符,因此您不需要额外的括号。