s is a string, This seems very long-winded - how can i simplify this? :
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 Thanks
24 Answers
Something like this is the simplest and works (as seen on ideone.com):
puts 'Hello' * 3 # HelloHelloHello s = 'Go' x = 4 z = s * (x - 1) puts z # GoGoGo API links
1ruby-doc.org -
String:str * integer => new_strCopy—Returns a new
Stringcontaining integer copies of the receiver."Ho! " * 3 #=> "Ho! Ho! Ho! "
z='' (x-1).times do z+=s end Pseudo code (not ruby)
if 1 < int(x) < 7 then z = (x-1)*s For example for a rating system up to 5 stars you can use something like this:
def rating_to_star(rating) 'star' * rating.to_i + 'empty_star' * (5 - rating.to_i) end