1、Scala的for循环使用(to,by):
object for_test {
def main(args: Array[String]): Unit = {
for (i <- 1 to 5) println(i)
println("------------------")
for (i <- 1 to 5 by 2) println(i)
}
}
out:
1
2
3
4
5
------------------
1
3
5
Process finished with exit code 0
2、守卫(guard)表达式
for ( 变量 <- 表达式 if 条件表达式 ) 语句块
for (i <- 1 to 5 if i % 2 == 0) println(i)
out:
2
4
3、Scala支持多生成器,用分号隔开
for (i <- 1 to 5; j <- 1 to 3) println(i * j)
out:
1
2
3
2
4
6
3
6
9
4
8
12
5
10
15
4、for推导式
for (变量 <- 表达式) yield {语句块}
scala> val r = for (i <- Array(1, 2, 3, 4, 5) if i % 2 == 0) yield {println(i); i}
2
4
r: Array[Int] = Array(2, 4)
5、异常处理:
- 受检异常(checked exception)
- 不受检异常(unchecked exception)
Scala中将所有的异常都当作不受检异常。
使用try,catch处理异常。
6、对循环的控制
Breaks类(包scala.util.control)
- breakable
- break
breakable{
...
if(...)break
...
}
循环控制案例1:
import util.control.Breaks._ //导入Breaks类的所有方法
object breaks_test {
def main(args: Array[String]): Unit = {
val array = Array(1, 3, 10, 5, 4)
breakable {
for (i <- array) {
if (i > 5) break() //跳出breakable,终止for循环,相当于Java中的break
println(i)
}
}
//上面for语句将输出1,3
}
}
循环控制案例2:
import util.control.Breaks._ //导入Breaks类的所有方法
object breaks_test {
def main(args: Array[String]): Unit = {
val array = Array(1, 3, 10, 5, 4)
for (i <- array) {
breakable {
if (i > 5) break()
//跳出breakable,终止当次循环,相当于Java的continue
println(i)
}
}
//上面的for语句将输出1,3,5,4
}
}