我正在尝试在Julia中使用while
和or
条件运行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
。
如果可以在一行中完成,甚至更好。
答案 0 :(得分:4)
在Julia中&
实际执行按位 - 而|
执行按位或。这些运算符比比较运算符higher precedence所以您的条件在此处评估为
s != (0 & d) <= N
这可能不是预期的。
您需要使用&&
和||
来代替Python的and
和or
运算符。这些运算符执行短路评估(documentation)。
与在Python中一样,比较(如!=
和<=
)的优先级高于布尔运算符,因此您不需要额外的括号。