Reputation: 59
I'm trying to make a simple *
pyramid using while loops but it stops at the first five *
. I can't figure out why.
This is my code:
x = 5
y = 0
while x > 0
while y < x
print "*"
y +=1
end
x -= 1
end
Upvotes: 0
Views: 48
Reputation: 135406
You never reset y
or print a new line
x = 5
y = 0
while x > 0
while y < x
print "*"
y +=1
end
print "\n"
y = 0
x -= 1
end
Output
*****
****
***
**
*
That is bad Ruby tho
This is a much more idiomatic solution
5.downto(1) do |x|
1.upto(x) do |y|
print "*"
end
print "\n"
end
Output
*****
****
***
**
*
I don't know what the final shape of "pyramid" you're looking for, but you can likely adapt the technique above to get the desired output
Upvotes: 1