有没有更好的方法在if语句中编写多个OR语句?

kun*_*nal 3 ruby if-statement

def get_string(no_of_times)
    1.upto(no_of_times) do 
    string_input = gets.chomp
    count_holes(string_input)
    end 
end

def count_holes(word)
    count = 0
    word.each_char do |char|
        if char == "A" || char == "D" || char == "O" || char == "P" || char == "Q" || char == "R" 
            count += 1
        elsif char == "B"
            count += 2
        end
    end
    $arr_of_holes << count
end



test_cases = gets.chomp.to_i

$arr_of_holes = []
get_string(test_cases)
puts $arr_of_holes
Run Code Online (Sandbox Code Playgroud)

大家好.迭代每个字符时,我不喜欢if语句中的长条件.所以我想问你们所有人是否有更好的办法在红宝石中做到这一点.

谢谢

nac*_*yot 5

这可以通过案例选择来完成,因为可以为每个when案例提供多个术语:

case char
when "A", "D", "O", "P", "Q", "R"
  count += 1
when "B"
  count += 2
end
Run Code Online (Sandbox Code Playgroud)