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为false,则result=false,也就是说此时表达式1能够决定整个与运算的值,因此不会再去求表达式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. 赋值运算符
-
= 指定将右边操作数赋值给左边的操作
-
+= 相加后再赋值,将左右两边的操作数相加后再赋值给左边的操作数
-
-= 相减后再赋值,将左右两边的操作数相减后再赋值给左边的操作数
-
*= 相乘后再赋值,将左右两边的操作数相乘后再赋值给左边的操作数
-
/= 相除后再赋值,将左右两边的操作数相除后再赋值给左边的操作数
-
%= 求余后再赋值,将左右两边的操作数进行求余操作后再赋值给左边的操作数
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