快速入门Scala(三):循环

分类目录:《快速入门Scala》总目录

有的时候,我们可能需要多次执行同一块代码,这时候就需要使用循环语句。Scala 语言提供了以下几种循环类型:

循环类型 描述
for 循环 用来重复执行一系列语句直到达成特定条件达成
while 循环 如果条件为true,会重复执行语句,直到条件变为false
do…while 循环 类似while,但在判断循环条件之前,先执行一次循环的代码块

for循环

for循环允许编写一个执行指定次数的循环控制结构。

语法

for(var x <- iter ){
	//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 循环中你可以使用分号(;)来设置多个区间,它将迭代给定区间所有的可能值,其效果类似于其他编程语言中循环的嵌套:

for (i <- 1 to 10; j <- 1 to 10) println(i + j)
for循环的过滤

可以使用一个或多个 if 语句来过滤一些元素,不同的条件使用分号(;)隔开。以下是在 for 循环中使用过滤器的语法:

for( var x <- iter
  if condition1; if condition2; ...){
	//for循环代码块
}
for循环使用yield返回集合

使用yield可以将for循环的返回值作为一个变量存储到一个集合中,最后统一返回:

scala> for (i <- 1 to 3) yield i * 10
res1: scala.collection.immutable.IndexedSeq[Int] = Vector(10, 20, 30)

while循环

只要给定的条件为 true,中的 while 循环语句会重复执行循环体内的代码块:

while(condition){
	//while循环代码块
}

condition可以是任意的表达式,当为任意非零值时都为 true。当条件为 true 时执行循环。当条件为 false 时,退出循环,程序流将继续执行紧接着循环的下一条语句。

do…while 循环

不像 while 循环在循环头部测试循环条件,do…while循环是在循环的尾部检查它的条件,这就说明do…while 循环会确保至少执行一次循环。

do {
	//do...while循环代码块
} while(condition)
如果条件为true,控制流会跳转回上面的do,然后重新执行循环中的代码块,这个过程会不断重复,直到给定条件变为false为止。

你可能感兴趣的:(快速入门Scala)