如果 elsif 別的並且結束

Ruby 為分支邏輯提供了預期的 ifelse 表示式,由 end 關鍵字終止:

# Simulate flipping a coin
result = [:heads, :tails].sample

if result == :heads
  puts 'The coin-toss came up "heads"'
else
  puts 'The coin-toss came up "tails"'
end

在 Ruby 中,if 語句是求值的表示式,結果可以賦值給變數:

status = if age < 18
           :minor
         else
           :adult
         end

Ruby 還提供 C 風格的三元運算子( 詳見此處 ),可表示為:

some_statement ? if_true : if_false  

這意味著使用 if-else 的上述示例也可以寫為

status = age < 18 ? :minor : :adult

此外,Ruby 提供 elsif 關鍵字,該關鍵字接受表示式以啟用其他分支邏輯:

label = if shirt_size == :s
          'small'
        elsif shirt_size == :m
          'medium'
        elsif shirt_size == :l
          'large'
        else
          'unknown size'
        end

如果 if / elsif 鏈中沒有條件為真,並且沒有 else 子句,則表示式求值為 nil。這在字串插值中很有用,因為 nil.to_s 是空字串:

"user#{'s' if @users.size != 1}"