流程控制语句
转载:流程控制语句
1. 条件表达式if
Scala 中的 if/else 语法结构与 Java 中的一样,唯一不同的是,Scala 中的 if 表达式是有返回值的。
object ScalaApp extends App {
val x = "scala"
val result = if (x.length == 5) "true" else "false"
print(result)
}在 Java 中,每行语句都需要使用 ; 表示结束,但是在 Scala 中并不需要。除非你在单行语句中写了多行代码。
2. 块表达式
在 Scala 中,可以使用 {} 块包含一系列表达式,块中最后一个表达式的值就是块的值。
object ScalaApp extends App {
val result = {
val a = 1 + 1; val b = 2 + 2; a + b
}
print(result)
}
// 输出: 6如果块中的最后一个表达式没有返回值,则块的返回值是 Unit 类型。
3. 循环表达式while
Scala 和大多数语言一样,支持 while 和 do ... while 表达式。
4. 循环表达式for
for 循环的基本使用如下:
除了基本使用外,还可以使用 yield 关键字从 for 循环中产生 Vector,这称为 for 推导式。
5. 异常处理try
和 Java 中一样,支持 try...catch...finally 语句。
这里需要注意的是因为 finally 语句一定会被执行,所以不要在该语句中返回值,否则返回值会被作为整个 try 语句的返回值,如下:
6. 条件选择表达式match
match 类似于 java 中的 switch 语句。
但是与 Java 中的 switch 有以下三点不同:
Scala 中的 case 语句支持任何类型;而 Java 中 case 语句仅支持整型、枚举和字符串常量;
Scala 中每个分支语句后面不需要写 break,因为在 case 语句中 break 是隐含的,默认就有;
在 Scala 中 match 语句是有返回值的,而 Java 中 switch 语句是没有返回值的。如下:
7. 没有break和continue
额外注意一下:Scala 中并不支持 Java 中的 break 和 continue 关键字。
8. 输入与输出
在 Scala 中可以使用 print、println、printf 打印输出,这与 Java 中是一样的。如果需要从控制台中获取输入,则可以使用 StdIn 中定义的各种方法。
9. 参考资料
Martin Odersky . Scala 编程 (第 3 版)[M] . 电子工业出版社 . 2018-1-1
凯.S.霍斯特曼 . 快学 Scala(第 2 版)[M] . 电子工业出版社 . 2017-7
最后更新于
这有帮助吗?