Ruby中有“do…while”循环吗?

我使用此代码让用户输入名称,而程序将其存储在数组中,直到用户输入空字符串(每个名称后必须按enter键):

人=[]
info='a'#必须用某些东西填充变量,否则循环将不会执行
而不是info.empty?
info=get.chomp
人员+=[人员新建(信息)]如果不是信息为空?
终止

这段代码在do中看起来会更好。。。while循环:

人=[]
做
info=get.chomp
人员+=[人员新建(信息)]如果不是信息为空?
而不是info.empty?

在这段代码中,我不必将信息分配给某个随机字符串

不幸的是,这种类型的循环在Ruby中似乎并不存在。有人能提出更好的方法吗

小心

begin<代码>结束时<条件&gt被Ruby的作者Matz拒绝。相反,他建议使用内核#循环,例如

循环执行
#这里有一些代码
如果<条件>
终止

这是2005年11月23日的一封电子邮件,Matz表示:

|>请不要用它。我很后悔这个功能,我想
|&燃气轮机;如果可能的话,在将来移除它。
|
|我很惊讶。你后悔什么?
因为用户很难判断
开始<代码>结束时<康德>
工作原理不同于
<代码>而<康德>

RosettaCode wiki也有类似的故事:

2005年11月,Ruby的创建者松本幸弘(Yukhiro Matsumoto)对这种循环特性表示遗憾,并建议使用内核循环

发表评论