條件

條件式 在 Julia

7 個練習

關於 條件式

比較運算子

比較運算子和許多其他語言相似,不過也為數學愛好者多準備了一些選項。

在相等性方面,運算子有==(等於)以及!=或≠(不等於)。

txt = "abc"
txt == "abc"  # true
txt != "abc"  # false
txt ≠ "abc"  # false (synonym for !=)

此外,還有各種大於、小於的運算子。

1 < 3  # true
3 > 3  # false
3 <= 3  # true
3 ≤ 3  # true (synonym for <=)
4 >= 3  # true
4 ≥ 3  # true (synonym for >=)

和 Julia 的許多地方一樣,用對編輯器就能輕鬆輸入這些數學符號。輸入\ne、\le或\ge,再按TAB,就能得到≠、≤或≥。

上一個例子只用到數字,不過我們會在課程大綱的其他部分看到,各種其他型別也具有順序的概念,可以用大於、小於來比較。

比較運算子可以串接起來,寫出清楚又精簡的語法:

n = 3
1 ≤ n ≤ 5  # true (n "between" two limits)

上一個例子等同於1 ≤ n && n ≤ 5。

用if分支

以下是if敘述的完整形式:

if conditional1
    statements...
elseif conditional2
    statements...
else
    statements...
end

不需要括號()或大括號{},而縮排「只是」為了提升可讀性_(不過可讀性非常重要!)_。

elseif和else都是選用的,而且可以有好幾個elseif區塊。 不過,end是必需的。

也可以巢狀使用if敘述,不過你可以透過善用括號、縮排和註解來幫助可讀性。

if敘述最短的形式大概像這樣:

if n < 0
    n = 0
end

提醒一下:只有求值結果為true或false的運算式才能當作條件使用。 Julia 刻意避開任何「真值性」的概念,所以零值、空字串和空陣列都_不_等同於false。

三元運算子

一個簡單又常見的情況,是根據條件從兩個值中挑選一個。

和許多語言一樣,Julia 也有三元運算子,可以讓這種寫法更精簡。

語法是conditional ? value_if_true : value_if_false。

所以前面的例子可以改寫成:

n = n < 0 ? 0 : n

編譯器不要求加括號,但加上括號可以提升可讀性。

Julia 有match敘述嗎?

目前 Julia 的基礎語言中並沒有 match/case 這類結構。

簡單的情況,建議使用if..elseif..else。

如果需要像 Scala 那樣複雜的模式比對,Match.jl套件很受歡迎。 不過,和大多數第三方套件一樣,Match在 Exercism 的測試執行器裡無法使用。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟

學習 條件式

練習已鎖定

再解鎖 5 個練習,就能練習 條件式