0%

Scala三种退出循环的方式

  • 基于Boolean类型的控制变量
  • 使用嵌套函数以及return
  • 使用Breaks类的break方法

基于Boolean类型的控制变量

分别针对while循环和for循环进行举例。

While循环

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
* 基于boolean类型的控制变量
* While循环
*/
def fun1While: Unit = {
var start = 0
var flag = true
while (flag) {
if (start == 5) flag = false
//继续执行后面的
println(start)
start += 1
}
}

For循环

1
2
3
4
5
6
7
8
9
10
11
12
/**
* 基于boolean类型的控制变量
* For循环,加了高级守卫
*/
def fun1For: Unit = {
var flag = true
for (i <- 0 to 10 if flag) {
if (i == 5) flag = false
//继续执行后面的
println(i)
}
}

使用嵌套函数以及return

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def fun2: Unit = {
var start = 0

def innerFun: Unit = {
for (i <- 0 to 10) {
//立即返回
if (i == 5) return
start += 1
}
}

innerFun
println(start)
}

使用Breaks类的break方法

1
2
3
4
5
6
7
8
9
10
11
import scala.util.control.Breaks._

def fun3: Unit = {
breakable{
for(i <- 0 to 10){
//立即返回
if(i == 5) break()
println(i)
}
}
}