循环
Scala拥有与java和C++相同的while和do循环
while(n>0){
r=r*n
n-=1
}
scala的for结构,这里是1到n的区间(含n)
for(i<- 1 to n)
r=r*i
util返回并不包含上限的区间
val s="Hello"
var sum=0
for(i<- 0 util s.length)
sum+=s(i)
遍历字符序列可以直接
var sum=0
for(ch<- "Hello") sum+=ch
提供多个生成器
for(i<- 1 to 3;j<- 1 to 3) print((10*i+j)+" ")
每个生成器都可以带一个判断条件
for(i<-1 to 3;j<-1 to 3 if i!=j) print((10*i+j)+" ")
可以使用任意多的定义,以便在循环中使用
for(i<-1 to 3;from=4-i;j<-from to 3) print((10*i+j)+" ")
如果for循环的循环体以yield开始,则该循环会构造一个集合
for(i<-1 to 10) yield i%3
for推导式生成的集合与它的第一个生成器是类型兼容的
scala> for(c<-"Hello";i<- 0 to 1) yield (c+i).toChar
res0: String = HIeflmlmop
scala> for(i<- 0 to 1;c<-"Hello") yield (c+i).toChar
res1: scala.collection.immutable.IndexedSeq[Char] = Vector(H, e, l, l, o, I, f, m, m, p)