3.1 运算符介绍 

      运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等

      1) 算术运算符

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

      2) 赋值运算符

      3) 比较运算符(关系运算符)

      4) 逻辑运算符

      5) 位运算符

3.2 算术运算符

  3.2.1 介绍  

      算术运算符(arithmetic)是对数值类型的变量进行运算的,在Scala程序中使用非常多

  3.2.2 算数运算符一览图  

3. Scala运算符 随笔 第1张

  3.2.3 案例演示  

      +,-,*,/,% 重点讲解 /、%

      +、-、* 是一个道理,完全可以类推

      算数运算符的运算规则和Java一样

object boke_demo01 {

  def main(args: Array[String]): Unit = {

    // / 的使用
    var r1: Int = 10 / 3 // 3
    println("r1=" + r1)
    var r2: Double = 10 / 3 // 3.0
    println("r2=" + r2)
    var r3: Double = 10.0 / 3 // 3.333333
    println("r3=" + r3)
    println("r3=" + r3.formatted("%.2f")) // 3.33

    // % 的使用
    // % 的运算的原则: a % b = a - a/b * b
    println(10 % 3) // 1
    println(-10 % 3) // -1  // -10 % 3 = (-10)- (-3) * 3 = -10 + 9 = -1
    println(-10 % -3) // -1 // -10 % -3 = (-10)- (3) * -3 = -10 + 9 = -1
    println(10 % -3) // 1

    // ++ 和 --
    // 说明,在scala中没有 ++ 和 --, 而使用 +=1  和  -= 1
    var num1 = 10
    //num1++ 错误
    num1 += 1 // 替代 num1++
    //num-- 错误
    num1 -= 1 // 替代 num1--
    println(num1)

  }

}

  3.2.4 细节说明 

      1) 对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。例如:var x : Int = 10/3,结果是3

      2) 当对一个数取模时,可以等价a%b=a-a/b*b,这样我们可以看到取模的一个本质运算(和Java的取模运算规则一样)

      3) 注意:Scala中没有++、--操作符,需要通过+=、-=来实现同样的效果

3.3 关系运算符  

  3.3.1 基本介绍  

      1) 关系运算符的结果都是boolean型,也就是要么时true,要么是false

      2) 关系表达式经常用在if结构的条件中或循环结构的条件中

      3) 关系运算符的使用和Java一样

  3.3.2 关系运算符一览图

3. Scala运算符 随笔 第2张

  3.3.3 案例演示

object boke_demo01 {

  def main(args: Array[String]): Unit = {

    var a = 12
    var b = 9
    
    println(a > b) // true 
    println(a>=b) // true 
    println(a<=b) // false 
    println(a<b) // false 
    println(a==b) // false 
    println(a!=b) // true
    var flag: Boolean = a > b // true
  }

}

  3.3.4 细节说明 

      1) 关系运算符组成的表达式,我们称之为关系表达式,a>b

      2) 比较运算符“==”不能误写成“=”

      3) 使用陷阱:如果两个浮点数进行比较,应当保证数据类型一致

3.4 逻辑运算符 

  3.4.1 介绍 

      用于连接多个条件(一般来讲就是关系表达式),最终的结果也是一个boolean值

  3.4.2 逻辑运算符一览图 

3. Scala运算符 随笔 第3张

3.5 赋值运算符 

  3.5.1 介绍  

      赋值运算符就是将某个运算后的值,赋给指定的变量

  3.5.2 赋值运算符的分类  

3. Scala运算符 随笔 第4张

3. Scala运算符 随笔 第5张

  3.5.3 赋值运算符特点   

      1) 运算顺序从右往左

      2) 赋值运算符的左边只能是变量,右边可以是变量、表达式、常量值/字面量

      3) 复合赋值运算符等价于下面的效果

        比如: a+=3 等价于 a=a+3

  3.5.4 位运算符

      位运算符的规则和Java一样

3. Scala运算符 随笔 第6张

  3.5.5 Scala不支持三目运算符,在Scala中使用if-else的方式实现

      val num = 5 > 4 ? 5 : 4 //没有

      val num = if (5>4) 5 else 4 

3.6 运算符优先级  

      1) 运算符有不同的优先级,所谓优先级就是表达式中的运算顺序

      2) 只有单目运算符、赋值运算符是从右向左运算的

      3) 运算符的优先级和Java一样

      运算符优先级小结

        1. () []

        2. 单目运算

        3. 算术运算符

        4. 移位运算

        5. 比较运算符(关系运算符)

        6. 位运算

        7. 关系运算符

        8. 赋值运算

        9. ,

  3.6.1 运算符优先级一览图  

3. Scala运算符 随笔 第7张

3.7 键盘输入语句 

  3.7.1 介绍 

      在编程中,需要接收用户输入的数据,就可以就可以使用键盘输入语句来获取

  3.7.2 案例演示  

      要求:可以从控制台接收用户信息[姓名,年龄,薪水]

import scala.io.StdIn

object boke_demo01 {

  def main(args: Array[String]): Unit = {

    /*
     要求:可以从控制台接收用户信息,【姓名,年龄,薪水】
      */
    println("请输入姓名")
    // alt + enter 自动导入包
    val name = StdIn.readLine()
    println("请输入年龄")
    val age = StdIn.readInt()
    println("请输入薪水")
    val sal = StdIn.readDouble()
    printf("用户的信息为 name=%s age=%d sal=%.2f", name, age, sal)
    
  }

}

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄