通过代码来演示if、for、while等Scala控制结构的运用
/**
* Scala中的基本控制结构有顺序、条件和循环三种方式,但是Scala也有些高级的流程控制结构类
* 模式匹配,这里我们主要讲解的是if、for、while等三种控制结构及实战讲解
*/
object ControlStructuresOps {
def main(args: Array[String]): Unit = {
/**
* Scala中的if条件表达式是有结果的,这个和Java是有区别
*/
var age = 30
println(if (age > 25) "Worker" else "Student")
/**
* if条件表达式中可以进行类型推到,省掉变量的类型书写,为复杂算法提供便利
*/
val result = if (age > 25) "Worker" else 1
//else可以省略,这时候result2还是Any类型
//等价于if (age > 25) "Worker" else ()
val result2 = if (age > 25) "Worker"
//{}最后一条语句是结果返回值
var x, y = 0
val result3 = if (age > 25) {
x = x + 1
y = y + 1
x + y
} else 0
println(result3)
//for循环中运用if语句进行过滤,优先执行if条件语句
for (i <- 0 to 10 if i % 2 == 0) println(i)
//yield,将满足条件的i返回为一个数组
val result4 = for (i <- 0 to 10 if i % 2 == 0) yield i
//for运行字符串
for (item <- "Hello Spark") println(item)
//如果想返回两个字符串
for (item <- "Hello Spark".split(" ")) println(item)
//while循序使用,通过if条件判断将flag赋值为false来跳出while
var flag = true
while (flag) {
for (item <- "Hello Spark") {
println(item)
if (item == 'r') flag = false
}
}
//另外一种通过break()跳出while循环的方式,很少用
import scala.util.control.Breaks._
flag = true
breakable {
while (flag) {
for (item <- "Hello Spark") {
println(item)
if (item == 'r') {
break()
}
}
}
}
}
蘑菇云Spark&Scala详解搜狐视频地址:
http://my.tv.sohu.com/us/291747571/84640112.shtml
备注:
资料来源于:DT_大数据梦工厂(Spark"蘑菇云"行动)
更多私密内容,请关注微信公众号:DT_Spark
如果您对大数据Spark感兴趣,可以免费听由王家林老师每天晚上20:00开设的Spark永久免费公开课,地址YY房间号:68917580