第4课:零基础彻底实战Scala控制结构及Spark源码解析

通过代码来演示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感兴趣,可以免费听由王家林老师每天晚上2000开设的Spark永久免费公开课,地址YY房间号:68917580

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值