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

If

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

1
2
3
4
5
6
let num = 10;

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

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

1
2
3
4
5
6
num = 10

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

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

if not

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

1
2
3
4
5
6
num = 10

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

if 倒裝句

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

1
2
3
4
num = 10

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

unless

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

1
2
3
4
5
6
num = 10

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

當然也可以使用倒裝句:

1
2
3
4
num = 10

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

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

if…else

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

1
2
3
4
5
6
7
8
9
10
11
deposit = 30000
option = ''

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

puts option
# 繼續存錢QQ

也可以使用三元運算子:

1
2
3
4
5
6
deposit = 31000
option = ''

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

if…elsif…else

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

1
2
3
4
5
6
7
8
9
10
11
12
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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