package com.study
/*** 流程控制
* 1.Scalca中的基本控制结构有顺序、条件和循环三种方式,这个其他的JVM语言是一致的,但是Scala也有一些高级* 的流程控制结构(模式匹配)
*
*/
object ControlStructures {
def main(args: Array[String]): Unit = {
var age = 30
/**
* Scala中的if条件表达式是有值的
* if的返回值类型,由条件表达式的最后一条语句决定
* {...}scala中语句块是有值的,值就是最后一条语句
*/
//print(if(age>25)"Worker" else "Student")
var result1 = (if (age > 25) "Worker" else 1) //返回any类型,父类型
println(result1)
var result2 = (if (age > 25) "Worker") //返回any类型,默认添加else()
println(result2)
var result3 = (if (age > 25) "Worker" else None) //为了返回Option类型,为下一步处理打下基础, Object with Serializable { .. }
println(result3)
for (i <- 0 to 5 if i % 2 == 0) { //<-提取符
println(i) //0 2 4
}
/**
* for中的if叫做条件守卫,用于限制for循环(优化for循环,去掉不必要的执行步骤,或用于跳出for)
* 想跳出for循环,可使用return关键字
*/
var flag = true
var sum = 0
for (i <- 0 to 6 if flag) {
sum = sum + i
// if(5==i)flag=false
// if (5 == i) return //不会再执行下面的代码
}
println("sum=" + sum)
for (item <- "Hello Spark") println(item) //智能检查数据类型
for (item <- "Hello Spark".split(" ")) println(item)
import scala.util.control.Breaks._ //静态导入
flag = true
breakable {
while (flag) {
for (item <- "Spark") {
println(item)
if (item == 'r') {
flag = false
break
}
}
}
}
println("finished")
}
}
scala学习笔记(四)流程控制
最新推荐文章于 2024-07-26 16:01:19 发布