begin code end while condetion
如上语句能实现 do while 功能, 有没有更简洁的写法实现 do while 功能?
do while 不符合人类阅读习惯,请使用while 1; break if; end
while 1; break if; end
有
i = 0 begin puts i i += 1 end while i < 5
i = 0 while i < 5 do puts i i += 1 end
http://www.runoob.com/ruby/ruby-loop.html
begin s += (cn % 2).to_s cn /= 2 end while cn > 0 s.reverse
这是一段将整数 cn 转换为二进制字符串的代码, 若写成 while cn >= 0 *** end 的形式 那么当 cn==0 时会无限循环。如果 条件改成 while cn > 0 那么对于整数 0 不能执行块中的代码,将其转换二进制字符串了,如果将整数 0 做单独处理,又显得累赘了。
据说比较提倡用 break 来实现。
loop s += (cn % 2).to_s cn /= 2 break unless cn > 0 end
那还是用 loop { ... } 好了。 或者
loop do ... break if xxxx end