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
。