循环

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)

results matching ""

    No results matching ""