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 Копировать - возвращает новый String, содержащий целое число копий получателя. "Ho! " * 3 #=> "Ho! Ho! Ho! "
ruby-doc.org - String: str * integer => new_str
String
str * integer => new_str
Копировать - возвращает новый 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