From: "Kredaxx P." Date: 2010-09-29T10:14:43+09:00 Subject: Re: puts and return The reason it doesn't work as you expect is because 'and' and puts. puts' return value is nil. nil is falsy in conditions nil and true #=> nil and you are getting there: (nil and break) if i > 5 which means break will never happen. use ( puts(""); break ) if condition # if you want to achieve that, or better yet if condition puts("") break end if thats more clear -- Posted via http://www.ruby-forum.com/.