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: 223

Filed under:
|
|
|

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

Related posts about scala

Related posts about for