Spark大数据处理学习笔记 1.5 掌握Scala内建控制结构

目录

一、条件表达式

(一)语法格式

(二)执行情况

(三)案例演示

任务1、根据输入值的不同进行判断

 任务2、编写Scala程序,判断奇偶性

 二、块表达式 

(一)语法格式

(二)执行情况 

(三)案例演示 

 三、for循环

 (一)单重for循环

 1、语法格式

2、执行情况

3、案例演示 

 任务2、遍历字符串,输出每个字符


一、条件表达式

(一)语法格式

if (条件) 值1 else 值2

(二)执行情况

  • 条件为真,结果是值1;条件为假,结果是值2。如果if和else的返回结果同为某种类型,那么条件表达式结果也是那种类型,否则就是Any类型
  • Scala的条件表达式有点类似于Java的条件运算符

(三)案例演示

任务1、根据输入值的不同进行判断

 当然也可以在一个表达式中进行多次判断

 可以将上述条件表达式改造成嵌套的选择结构,可读性倒是提高了,但是简洁性降低了

 

  • 函数式编程语言,只有一个入口和一个出口,中间没有任何与外界交流的输入或输出语句,所以安全性非常好。

  • Java不是函数式语言,选择结构没有返回值,就必须根据不同情况对评语变量赋值

 

 任务2、编写Scala程序,判断奇偶性

  • 打开Scala项目ScalaDemo,创建net.huawei.day02包,在包里创建Example01对象
package net.huawei.day02

import scala.io.StdIn

object Example01 {
  def main(args: Array[String]): Unit = {
    print("n = ")
    val n = StdIn.readLine.toInt
    if (n % 2 == 0)
      println(n.toString + "是偶数~")
    else
      println(n.toString + "是奇数~")
  }
}

 

 运行程序,查看结果

在这里插入图片描述

在这里插入图片描述

  • 利用if结构具有返回值的特性,改写程序成为函数式风格

    package net.huawei.day02
    
    import scala.io.StdIn
    
    object Example01 {
      def main(args: Array[String]): Unit = {
        print("n = ")
        val n = StdIn.readLine.toInt
        val result = if (n % 2 == 0) n.toString + "是偶数~" else n.toString + "是奇数~"
        println(result)
      }
    }
    

 运行程序,查看结果

  在这里插入图片描述

 二、块表达式 

(一)语法格式

{语句组}
  • 块表达式为包含在符号“{}”中的语句块

(二)执行情况 

需要注意的是,Scala中的返回值是最后一条语句的执行结果,而不需要像Java一样单独写return关键字。如果表达式中没有执行结果,就返回一个Unit对象,类似Java中的void

(三)案例演示 

语句块最后一句的值就是整个块表达式的结果

 语句块最后一句没有执行结果,那么块表达式结果就是Unit

 三、for循环

 (一)单重for循环

 1、语法格式

for (变量 <- 集合或数组 (条件)) {
     语句组
}

2、执行情况

  • 表示将集合或数组中的每一个值循环赋给一个变量

3、案例演示 

任务1:输出1到10

  • 两种方式实现,一种使用Range类,一种使用to运算符

  • Range(a, b): 从a到b,不包含b,跟Python里的range函数一样,含头不含尾

  • 1 to 10表示将1到10的所有值组成一个集合,且包括10。若不想包括10,则可使用关键字until

 在这里插入图片描述

  •  用Java语言完成任务

 在这里插入图片描述

  •  用Python语言完成任务

 在这里插入图片描述

  • 打印字符直角三角形

 

  •  利用map函数产生每行星号构成的向量,然后利用foreach函数循环输出

 

  • 利用双重循环与流间变量,这个是Scala语言特有的东西

 

 

 任务2、遍历字符串,输出每个字符

  •  方法一、按索引取字符串的每个字符(传统for循环)

 

  •  方法二:将字符串看作一个由多个字符组成的集合(增强for循环)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值