一、顺序控制
1. 顺序控制介绍
程序从上到下逐行地执行,中间没有任何判断和跳转。
2. 顺序控制举例和注意事项
Scala中定义变量时采用合法的前向引用。如:
def main(args : Array[String]) : Unit = {
var num1 = 12
var num2 = num1 + 2
}
错误形式:
def main(args : Array[String]) : Unit = {
var num2 = num1 + 2
var num1 = 12
}
二. 分支控制if-else
1. 单分支
- 基本语法
if (条件表达式) {
执行代码块
}
说明:当条件表达式为ture 时,就会执行 { } 的代码。
2. 双分支
- 基本语法
if (条件表达式) {
执行代码块1
} else {
执行代码块2
}
说明:当条件表达式成立,即执行代码块1,否则执行代码块2.
3. 多分支
- 基本语法
if (条件表达式1) {
执行代码块1
}
else if (条件表达式2) {
执行代码块2
}
……
else {
执行代码块n
}
说明:当条件表达式1成立时,即执行代码块1,如果表达式1不成立,才去判断表达式2是否成立,如果表达式2成立,就执行代码块2,以此类推,如果所有的表达式都不成立,则执行 else 的代码块,注意:只能有一个执行入口。
4. 注意事项**
- 如果大括号{}内的逻辑代码只有一行,大括号可以省略, 这点和java 的规定一样。
- Scala中任意表达式都是有返回值的,也就意味着if else表达式其实是有返回结果的,具体返回结果的值取决于满足条件的代码体的最后一行内容.
- Scala中是没有三元运算符,因为可以这样简写:
5. 扩展:嵌套分支
- 基本介绍
在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支外面的分支结构称为外层分支。嵌套分支不要超过3层
- 基本语法
if(){
if(){
}else{
}
}
三. for循环控制
- 基本介绍
Scala 也为for 循环这一常见的控制结构提供了非常多的特性,这些for 循环的特性被称为for 推导式(for comprehension)或for 表达式(for expression)
- 基本案例
for(i <- 1 to 3){
print(i + " ")
}
println()
- 说明
- i 表示循环的变量, <- 规定好 to 规定
- i 将会从 1-3 循环, 前后闭合
- 输出10句 “hello,尚硅谷!”
-
for循环语法详细讲解
https://blog.csdn.net/qq_43437122/article/details/107455978
四. while循环控制
- 基本语法
循环变量初始化
while (循环条件) {
循环体(语句)
循环变量迭代
}
- 说明
- 循环条件是返回一个布尔值的表达式
- while循环是先判断再执行语句
- 与If语句不同,While语句本身没有值,即整个While语句的结果是Unit类型的()
- 因为while中没有返回值,所以当要用该语句来计算并返回结果时,就不可避免的使用变量 ,而变量需要声明在while循环的外部,那么就等同于循环的内部对外部的变量造成了影响,所以不推荐使用,而是推荐使用for循环。
五. 多重循环控制
- 介绍:
- 将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for ,while ,do…while均可以作为外层循环和内层循环。【建议一般使用两层,最多不要超过3层】
- 实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。
- 设外层循环次数为m次,内层为n次, 则内层循环体实际上需要执行m*n=mn次。
六. 总结:
- Scala里面的do while循环控制和while类似,只不过它是先执行后判断
- Scala里面没有continue和break关键字,但是依然能实现这种效果,使用for循环守卫和抽象控制,抽象控制后面的博文会介绍,循环守卫参考博文Scala for循环的详细讲解。