if ... else 表达式
朱莉娅最常见的条件是 if … else 表达式。例如,下面我们实现欧几里德算法来计算最大公约数 ,使用条件来处理基本情况:
mygcd(a, b) = if a == 0
abs(b)
else
mygcd(b % a, a)
end
朱莉娅中的 if … else 形式实际上是一个表达式,并且具有一个值; 该值是所采用分支上的尾部位置(即最后一个表达式)中的表达式。请考虑以下示例输入:
julia> mygcd(0, -10)
10
在这里,a 是 0 而 b 是 -10。条件 a == 0 是 true,所以第一个分支被采用。返回的值是 abs(b),即 10。
julia> mygcd(2, 3)
1
在这里,a 是 2,b 是 3。条件 a == 0 是假的,所以第二个分支被采用,我们计算 mygcd(b % a, a),即 mygcd(3 % 2, 2)。当 3 除以 2 时,%运算符返回余数,在这种情况下 1。因此我们计算 mygcd(1, 2),这次 a 是 1 而 b 是 2。再次,a == 0 是假的,所以第二个分支被采用,我们计算 mygcd(b % a, a),这是 mygcd(0, 1)。这次,a == 0 终于返回了 abs(b),结果是 1。