file.each_line do |line|
#skip the first one/not a user
3.times { next } if first == 1
first = 2
end
我怎样才能获得'next'到“next”的每个迭代次序,而不是3次迭代?另外,我怎么写这个看起来更好(即:第一个== 1看起来很糟糕)
答案 0 :(得分:6)
您可以使用drop
方法来删除前几个元素:
File.open('bar').each_line.drop(3).each do |line|
puts line
end
答案 1 :(得分:1)
你的内部循环可以在它break_out = true
之前设置一个标志变量(比如break
),你可以在内循环出来后立即检查该变量。如果检测到标志已设置,则跳出外循环。
更有可能的是,有一种更好的方法来构建代码以执行您想要的操作。你只是想跳过前三行吗?如果是这样,请尝试以下方法:
line_count = 0
file.each_line do |line|
#skip the first one/not a user
line_count += 1
next if (line_count <= 3 && first == 1)
first = 2
end
答案 2 :(得分:0)
我认为你需要在那里添加另一个if语句
file.each_line do |line|
#skip the first one/not a user
3.times { next } if first == 1
break if something
first = 2
end
答案 3 :(得分:0)
如果文件不是太大,你可以
file.read.split("\n")[3..-1].each do |line_you_want|
puts line_you_want
end