分类目录:《快速入门Scala》总目录
有的时候,我们可能需要多次执行同一块代码,这时候就需要使用循环语句。Scala 语言提供了以下几种循环类型:
循环类型描述for 循环用来重复执行一系列语句直到达成特定条件达成while 循环如果条件为true,会重复执行语句,直到条件变为falsedo…while 循环类似while,但在判断循环条件之前,先执行一次循环的代码块for循环允许编写一个执行指定次数的循环控制结构。
以上语法中,iter一般是一个可以迭代的对象,如Array或String,也可以是一个数字区间,如i to j(从i至j的所有整数),或者 i until j(从i至j除了j的所有整数)。其中,左箭头 <- 用于为变量 x 赋值。
for (i <- 1 to 10) println(i)在 for 循环中你可以使用分号(;)来设置多个区间,它将迭代给定区间所有的可能值,其效果类似于其他编程语言中循环的嵌套:
for (i <- 1 to 10; j <- 1 to 10) println(i + j)可以使用一个或多个 if 语句来过滤一些元素,不同的条件使用分号(;)隔开。以下是在 for 循环中使用过滤器的语法:
for( var x <- iter if condition1; if condition2; ...){ //for循环代码块 }使用yield可以将for循环的返回值作为一个变量存储到一个集合中,最后统一返回:
scala> for (i <- 1 to 3) yield i * 10 res1: scala.collection.immutable.IndexedSeq[Int] = Vector(10, 20, 30)只要给定的条件为 true,中的 while 循环语句会重复执行循环体内的代码块:
while(condition){ //while循环代码块 }condition可以是任意的表达式,当为任意非零值时都为 true。当条件为 true 时执行循环。当条件为 false 时,退出循环,程序流将继续执行紧接着循环的下一条语句。
不像 while 循环在循环头部测试循环条件,do…while循环是在循环的尾部检查它的条件,这就说明do…while 循环会确保至少执行一次循环。
do { //do...while循环代码块 } while(condition) 如果条件为true,控制流会跳转回上面的do,然后重新执行循环中的代码块,这个过程会不断重复,直到给定条件变为false为止。