从STDIN特定次数读取数据

时间:2013-08-11 15:52:33

标签: ruby

我正在写一个应该从STDIN中读取n次的代码。所以说3次。最好的方法是什么?

我试过这个

counter = 0
while sentence = gets.chomp && counter < 3 do
 ...
 counter += 1
end

但由于一些奇怪的原因,循环内的句子变量是布尔值吗?

2 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

n.times { sentence = gets.chomp }

n.times do 
  sentence = gets.chomp
  # your code here
end

答案 1 :(得分:1)

运营商优先权。这一行:

while sentence = gets.chomp && counter < 3 do

被解释为

while sentence = ( gets.chomp && counter < 3 ) do

所以,你可以这样做:

while ( sentence = gets.chomp ) && counter < 3 do

这解释了为什么您将truefalse值添加到sentence,第三个选项应该解决此问题,因此您的代码非常接近工作。但是,在Ruby中看到像Babai的

这样的解决方案可能更常见