之前介紹了簡單的if,當然除了if我們當然會搭配else,if…else(如果…不然就…),
像之前的例子:如果生病了就在家休息可以變成。
如果生病了就在家休息,不然就去上學。
因為只有生病了可以在家休息。如果不想去學校,當然不可能在家,理所當然要去學校。
如果不想考試,也是理所當然不可能在家。
所以我們可以寫成:
situation = "want to stay at home"
if situation == "sick"
puts "stay at home"
else
puts "go to school"
end
這個情況就會變成,只要生病了就可以在家休息,但其他原因就只能去學校。
像狀態是想要在家,那這樣子就只能去上學。
三元運算子(Ternary Operator),主要是一個條件後面會接著一個問號(?),
且帶著兩個結果,會以冒號區隔兩種結果,然而當如果條件成立的話(表達為true時),
會實行前面的結果,而當如果條件不成立的話(表達為false時),會實行後面的結果。
表示為 a ? b : c ,其中a是一個條件判斷句。
像上面的例子我們可以寫成:
situation = "want to stay at home”
situation == "sick" **?** "stay at home" **:** "go to school”
當如果有多條件的時候,我們會使用if…elsif...else…,
但請注意這邊elsif 不是elseif,注意沒有多一個e。
例如今天我要出們運動,但我會因為天氣的關係,導致我選擇不同的運動,
如果是晴天,我會出門跑步,
如果是陰天,我會騎腳踏車,
如果是雨天,我會去健身房,
如果是其他天氣(打雷或下冰雹…等總之不是上述這三種天氣),就會在家。
weather = "hail"
if weather == "sunny"
puts "Running"
elsif weather == "cloudy"
puts "Cycling"
elsif weather == "rainy"
puts "Working out at the gym"
else
puts "stay at home"
end
由於現在天氣是冰雹(hail),所以只能留在家裡。
之前說過多條件的時候,可以使用case…when…成為第二種方法。
weather = "hail"
case weather
when "sunny"
puts "Running"
when "cloudy"
puts "Cycling"
when "rainy"
puts "Working out at the gym"
else
puts "stay at home"
end
其實在條件判斷式內,很常忘記寫成兩個等號(==),常常會寫成一個等號(=),
把原本要做比較的東西,變成指定的。我覺得這是我每次在練習的時候最常發生的通病。
但我覺得有問題才會是記起教訓的方法之一,犯錯才會讓自己印象深刻,更能時時刻刻謹記著。