配列について、case文を用いて要素を変更して再び配列にしたい!
例)
fruits = ["kiwi", "banana", "mikan", "orange", "apple", "ringo"]
basket1, basket2 = [], []
とします。
basket #=>["banana", "apple", "orange", "apple", "apple"]にしたいです。
whenに&&を使うと、["banana", "orange", nil, nil, "apple"]で&&左側の条件が期待通りに表示されない。
1
1fruits.each do |fruit| 2case fruit 3 when 'kiwi' ; next 4 when 'banana' ; f = "banana" 5 when 'apple' && 'ringo' ; f = "apple" 6 when 'orange' && 'mikan' ; f = "orange" 7end 8basket.push(f) 9end 10p basket #=>["banana", "orange", nil, nil, "apple"]
whenのあとの演算子を||に変えると||右側の条件が期待通りに表示されない。
2
1fruits.each do |fruit| 2case fruit 3 when 'banana' ; f = "banana" 4 when 'apple' || 'ringo' ; f = "apple" 5 when 'orange' || 'mikan' ; f = "orange" 6end 7basket.push(f) 8end 9p basket #=>["banana", nil, "orange", "apple", nil]
なお、実際の値はwhenと返り値が異なるため、日本語表記だった場合飲みのcase文をつくるのではなく、fruit配列全ての要素に対して条件式を通過するようにしたいです。
演算子を変更すれば良いのでしょうか??
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/08/15 13:49
2020/08/16 06:56
退会済みユーザー
2020/08/22 00:42