加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

3. Scala运算符

发布时间:2020-12-16 18:23:55 所属栏目:安全 来源:网络整理
导读:3.1 运算符介绍? 运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等 1) 算术运算符 2) 赋值运算符 3) 比较运算符(关系运算符) 4) 逻辑运算符 5) 位运算符 3.2 算术运算符 3.2.1 介绍 ? 算术运算符(arithmetic)是对数值类型的变量进行运算的,在Scal

3.1 运算符介绍?

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

      1) 算术运算符

      2) 赋值运算符

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

      4) 逻辑运算符

      5) 位运算符

3.2 算术运算符

  3.2.1 介绍 ?

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

  3.2.2 算数运算符一览图 ?

  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.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.5 赋值运算符?

  3.5.1 介绍 ?

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

  3.5.2 赋值运算符的分类 ?

  3.5.3 赋值运算符特点 ??

      1) 运算顺序从右往左

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

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

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

  3.5.4 位运算符

      位运算符的规则和Java一样

  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.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)
    
  }

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读