本篇文章將會提到 Ruby 該如何使用判斷式。

If

在 JavaScript 中,如果要做判斷式的話,會這樣做:

let num = 10;

if (num !== 5) {
  console.log('false');
}
// 結果會印出 false

而在 Ruby 中,也是差不多的作法:

num = 10

if num != 5
  puts 'false'
end
# 結果會印出 false

不過 Ruby 倒是提供了不一樣的寫法:

if not

這個用法感覺起來比較像英文的寫法,上面的例子如果用 if not 來表示的話,就會是:

num = 10

if not num == 5
  puts 'false'
end
# 結果會印出 false

if 倒裝句

這個寫法就更像英文了,如果寫起來就像是英文的倒裝句一樣,但是這個的用法只限一行的程式碼使用:

num = 10

puts 'false' if not num == 5
# 結果會印出 false

unless

if not 也可以使用 unless 來替代:

num = 10

unless num == 5
  puts 'false'
end
# 結果會印出 false

當然也可以使用倒裝句:

num = 10

puts 'false' unless num == 5
# 結果會印出 false

if...else 跟 if...elsif...else 還有 case...when

if...else

如果要使用到判斷的話,一般情況下都會有多種情形判別,例如:

deposit = 30000
option = ''

if deposit >= 30900
  option = '可以買 M1 Macbook Air'
else
  option = '繼續存錢QQ'
end

puts option
# 繼續存錢QQ

也可以使用三元運算子:

deposit = 31000
option = ''

option = (deposit >= 30900) ? '可以買 M1 Macbook Air' : '繼續存錢QQ'
puts option
# 可以買 M1 Macbook Air

if...elsif...else

如果有兩種以上的選擇的話,就可以使用這個寫法,要特別注意是 elsif

deposit = 40000
option = ''

if deposit >= 39900
  option = '可以買 M1 MacBook Pro'
elsif deposit >= 30900
  option = '可以買 M1 Macbook Air'
else
  option = '繼續存錢QQ'
end

puts option

case...when

如果在 JavaScript 中,有多種條件判別的話,可以使用 swtich

const skill = 'JavaScript';
let option = '';

switch (skill) {
  case 'Ruby':
    option = 'Ruby on Rails';
    break;
  case 'C#':
    option = 'ASP.Net';
    break;
  case 'JavaScript':
    option = 'Express';
    break;
  default:
    option = 'Learn something else';
}

console.log(option)

而在 Ruby 中,也有類似的語法可以使用,那就是 case...when

skill = 'PHP'
option = ''

case skill
when 'Ruby'
  option = 'Ruby on Rails'
when 'PHP'
  option = 'Laravel'
when 'JavaScript'
  option = 'Express'
else
  option = 'Learn something else'
end

puts option
# 印出 Laravel