【发布时间】:2010-11-07 06:36:09
【问题描述】:
在对对象执行“foreach”时,我想对最后一次循环迭代做一些不同的事情。我使用的是 Ruby,但 C#、Java 等也是如此。
list = ['A','B','C']
list.each{|i|
puts "Looping: "+i # if not last loop iteration
puts "Last one: "+i # if last loop iteration
}
所需的输出相当于:
Looping: 'A'
Looping: 'B'
Last one: 'C'
显而易见的解决方法是使用 'for i in 1..list.length' 将代码迁移到 for 循环,但 for each 解决方案感觉更优雅。在循环期间编写特殊情况的最优雅的方法是什么?用foreach能做到吗?
【问题讨论】:
-
感谢所有伟大而多样的答案。我当然明白人们对收藏品并不总是有订单的看法。但有时集合确实有顺序,我不明白为什么 for each 循环不应该仍然适用。
-
对不起,我只能选择一个答案,我喜欢其中的大多数。
-
@MattChurchy,可惜你没有选择更好的。
标签: c# java ruby loops foreach