Scala downwards or decreasing for loop?
Posted
by Felix
on Stack Overflow
See other posts from Stack Overflow
or by Felix
Published on 2010-04-11T15:22:08Z
Indexed on
2010/04/11
15:33 UTC
Read the original article
Hit count: 256
In scala, you often use an iterator to do a for loop in an increasing order like:
for(i <- 1 to 10){ code }
How would you do it so it goes from 10 to 1? I guess 10 to 1
gives an empty iterator (like usual range mathematics)?
I made a scala script which solves it by calling reverse on the iterator, but it's not nice in my opinion, is this the way to go:
def nBeers(n:Int) = n match {
case 0 => ("No more bottles of beer on the wall, no more bottles of beer."+
"\nGo to the store and buy some more, "+
"99 bottles of beer on the wall.\n")
case _ => (n+" bottles of beer on the wall, "+n
+" bottles of beer.\n"+"Take one down and pass it around, "+
(if((n-1)==0) "no more" else (n-1))+
" bottles of beer on the wall.\n")
}
for(b <- (0 to 99).reverse)println(nBeers(b))
?? Any comments/suggestions?
© Stack Overflow or respective owner