scala的运算符

69 阅读2分钟

1. 算术运算符

Scala中的算术运算符: + - * / %

  println(10/3) // Int/Int,结果还是Int  3

  println(10/3.0) // Int/Double,结果是Double 3.333333

  println(10%2) //  10/2的余数 0

  println(10.5%2) //10/2的余数 0

2. 关系运算符

scala关系运算符会得到Bool值

var b:Boolean = 1 == 1

println(b)  // true
println(1 != 2)  //true
println(1 > 2)  //false
println(1 < 2)  //true
println(2 >= 2) //true
println(2 <= 2) //true

3. 逻辑运算符

scala的逻辑运算符有与、或、非三种情况 与:&& 或:|| 非:!

println( 1 > 2 && 2 > 1) //false

println(3 < 5 || 5 > 3) //true

println( !(2 > 1)) //false

4. 短路运算

短路运算的核心思想是:由&&或||这两个运算符构建出来的表达式,只会对整个运算结果有决定作用的部分进行求值

Scala的短路运算法则:result=表达式1 运算符 表达式2

  1. 运算符为&&时:如果表达式1为false,则result=false,也就是说此时表达式1能够决定整个与运算的值,因此不会再去求表达式2的值。

  2. 运算符为||时:如果表达式1为true,则result=true,也就是说此时表达式1能够决定整个或运算的值,因此不会再去求表达式2的值。

object basic07 {
  def main(args: Array[String]): Unit = {
    def f() ={
      println("f")
      false
    }
    //运算符是&&时:
    1 > 2 && f() // false
    2 > 1 && f() // f
    
   //运算符是||时:
    1 > 1 || f() // f
    f() || 3 > 2 // f 因为f先被调用了
    var c = 3 > 2 || f()
    println(c)  //true
  }
}

5. 赋值运算符

  1. = 指定将右边操作数赋值给左边的操作

  2. += 相加后再赋值,将左右两边的操作数相加后再赋值给左边的操作数

  3. -= 相减后再赋值,将左右两边的操作数相减后再赋值给左边的操作数

  4. *= 相乘后再赋值,将左右两边的操作数相乘后再赋值给左边的操作数

  5. /= 相除后再赋值,将左右两边的操作数相除后再赋值给左边的操作数

  6. %= 求余后再赋值,将左右两边的操作数进行求余操作后再赋值给左边的操作数

sclala运算符的优先级

1. 乘除模 > 加减

2. 算术 > 关系 > 赋值

3. && > ||

val a = true
val b = false
val c = false
println(a || b && c) //先算&& 再算|| true

println((a || b) && c) // 先算括号里面的  false

练习题


var a = 1234
//在()内使用算术运算进行操作,以便输出对应结果
println( a/1000 ) //1
println( a/100%10 ) //2
println( a/10%10 ) //3
println( a%10 ) //4