02_Scala_流程控制
【摘要】 顺序控制 上到下逐行地执行
分支控制 if elif else
循环控制 for while
顺序控制 上到下逐行地执行,中间没有任何判断和跳转
分支控制 if elif else
循环控制 for while
分支控制if-else - 单分支/双分支/多分支
for循环控制 for 循环的特性被称为for 推导式(for comprehension)或for 表达式(for expression)
循环守卫,即循环保护式(也称条件判断式,守卫)。保护式为true则进入循环体内部,为false则跳过,类似于continue
循环返回值 yield
控制步长 Range
while循环控制
循环变量初始化
while (循环条件) {
循环体(语句)
循环变量迭代
}
while不推荐,外部定义变量,内部使用且对外部变量 有影响
循环条件:返回一个布尔值的表达式
while循环: 先判断再执行语句
整个While语句的结果是Unit类型的()
while循环的break & continue实现
Scala 中break 有抛异常,用 break{} 函数带了处理异常的能力
Scala中实现 continue 用到了 循环守卫
object ForWhileTest {
def main(args: Array[String]): Unit = {
// 1 to 3 包括3 // 循环守卫 循环 + if 判断
for(i <- 1 to 3 if i != 2) {
// print(i + " ")
}
// 1 until 3 不包括 3
for(i <- 1 until 3) {println(i)}
// 控制步长
for (i <- Range(1,10,2)){
// println(i)
}
//将遍历过程中处理的结果返回到一个新Vector集合中,使用yield关键字
val res = for(i <- 1 to 10) yield i
// println(res)
// while 循环
var i = 0
//2. i < 10 条件
while (i < 5){
println("hello,alex" + i) //循环体
//循环变量迭代
i += 1
}
//breakable()函数 实现break 操作
//说明
//1. breakable 是一个高阶函数:可以接收函数的函数就是高阶函数(后面详解)
//2. def breakable(op: => Unit) {
// try {
// op
// } catch {
// case ex: BreakControl =>
// if (ex ne breakException) throw ex
// }
// }
// (1) op: => Unit 表示接收的参数是一个没有输入,也没有返回值的函数
// (2) 即可以简单理解可以接收一段代码块
// 3. breakable 对break()抛出的异常做了处理,代码就继续执行
// 4. 当我们传入的是代码块,scala程序员会将() 改成{}
var n = 1
breakable {
while (n <= 5) {
n += 1
println("n=" + n)
if (n == 2) {
//中断while
//说明
//1. 在scala中使用函数式的break函数中断循环
//2. def break(): Nothing = { throw breakException }
break()
}}}
// 实现 continue 功能
// 循环守卫 if (i != 2 && i != 3) 这个条件为ture,才执行循环体
// 即当i ==2 或者 i == 3时,就跳过
for (i <- 1 to 10 if (i != 2 && i != 3)) {
println("i=" + i)
}
}}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)