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