s は文字列です。これは非常に長文のようです。これを単純化するにはどうすればよいですか? :
if x === 2
z = s
elsif x === 3
z = s+s
elsif x === 4
z = s+s+s
elsif x === 5
z = s+s+s+s
elsif x === 6
z = s+s+s+s+s
ありがとう
s は文字列です。これは非常に長文のようです。これを単純化するにはどうすればよいですか? :
if x === 2
z = s
elsif x === 3
z = s+s
elsif x === 4
z = s+s+s
elsif x === 5
z = s+s+s+s
elsif x === 6
z = s+s+s+s+s
ありがとう
このようなものが最もシンプルで機能します ( ideone.com で見られるように):
puts 'Hello' * 3 # HelloHelloHello
s = 'Go'
x = 4
z = s * (x - 1)
puts z # GoGoGo
ruby-doc.org -
String
:str * integer => new_str
Copy—受信者の新しい
String
包含整数コピーを返します。"Ho! " * 3 #=> "Ho! Ho! Ho! "
z=''
(x-1).times do
z+=s
end
たとえば、5 つ星までの評価システムの場合、次のようなものを使用できます。
def rating_to_star(rating)
'star' * rating.to_i + 'empty_star' * (5 - rating.to_i)
end
疑似コード (ルビではない)
if 1 < int(x) < 7 then
z = (x-1)*s