2017-02-06 10 views
0

私は、5つの変数がセットのためにロールバックされる必要があり、次に各変数に応じて文字列が印刷されるが、まったく同じ条件ではあるが互いに独立している。出力は、それらの文字列のリストを出力します。代わりに、書き込みのRubyの複数の独立変数ケース

n1 = rand(a..f)+a 
n2 = rand(a..f)+a 
... 
n5 = rand(a..f)+a 

case n1 
when a..c 
    puts x 
when d..f 
    puts y 
else 
    puts z 
end 

case n2 
when a..c 
    puts x 
when d..f 
    puts y 
else 
    puts z 
end 

... 

case n5 
when a..c 
    puts x 
when d..f 
    puts y 
else 
    puts z 
end 

配列または類似した何かで複数の独立変数としてケースを書くための方法ので、私は一度だけの条件を記述する必要があると思いますがありますか?ユーザーが不幸に多くの人を巻き込むことができれば、最大4つのセットが存在する可能性があります。同じ状況を20回まで書く必要がないようにするために、特定の状況では29の条件があります各ケース。

+0

1つずつメソッドに変数を渡します。 – engineersmnky

答えて

1

あなたは、複数回適用できる方法で持っているロジックをカプセル化する必要があるように思えます。簡単な例がありますが、正しい考え方であなたを得るために、少し頑強な例をここに示します:

class RollValue 
    def initialize(value) 
    @value = value 
    end 

    def message 
    case @value 
    when a..c 
     puts 'x' 
    when d..f 
     puts 'y' 
    else 
     puts 'z' 
    end 
    end 
end 

RollValue.new('b').message #=> 'x' 
+0

これはまさに私が探していたものです!私はそれをさまざまなセットに適用してテストしました。どうもありがとうございました! – nbwalsh

関連する問題