内容如下:
1. 算术运算符
2. 关系运算符
3. 逻辑运算符
4. 赋值运算符
(一)运算符概述
按照对数据操作的功能不同,我们可以把Scala运算符分为以下五大类。
· 逻辑运算符:包含逻辑与、逻辑或、逻辑非三种运算符,也是用于比较的。
· 位运算符:用于对二进制数的位进行左移、右移、取反等操作。
· 赋值运算符:用于将一个值进行赋值,例如=、+=、-=等。
(二)算术运算符
· +相当于调用对应类型的+方法
· -相当于调用对应类型的-方法
· 相当于调用对应类型的方法
· /相当于调用对应类型的/方法
· %相当于调用对应类型的%方法 %:计算余数。 5%2就是5除以2的余数, 5%2 = 1
// 算术运算符
// 数据类型。 7:Int
// 4:Int
// 7/4结果是Int
println(7/4) // 7/4 = 1
println(7/4.0) // 7/4 = 1
println(7%4) // 3
println(7-4) // 3
println(7+4) //11
println(7*4) //28
注意:7/4 = 1 , 7/4.0=1.75。原因是:
(二)关系运算符
Scala中的算术运算符: + - * / %
关系运算符会得到Bool值。scala中的关系运算符如下:
== 等于 , != 不等于 , > 大于 , < 小于 , >= 大于等于 , <= 小于等于
// 关系运算符:> < == >= !=
// false true
val a:Boolean = 3 > 2
println(7==4) //false
println(7>4) //true
println(7!=4) //true
println(7<4) //false
println(7>=4) //true
println(7<=4) //false
(三)逻辑运算符
Scala中的逻辑运算跟Java中一样,也是与、或、非三种情况,具体如下。
· 与:()&& 运算表达式有一个为假,则整个表达式为假false。
· 或:|| 运算表达式有一个为真,则整个表达式为真true。
· 非:! 就是取反的意思,与参与表达式相反。
// 逻辑运算符:
/*
&&(并且) 全部为true ===> true
||(或者) 有一个为true ===> true
!(取反)
*/
// println(1>2 && 3>4)
// println(2>1 && 4>3)
// println(1>2 || 3>4 || 5>6) //false
// println(1>2 || 4>3) //true
println(!(1>2)) //true
(五)Scala的短路运算
短路运算的核心思想是:由&&或||这两个运算符构建出来的表达式,只会对整个运算结果有决定作用的部分进行求值。
Scala的短路运算法则:result=表达式1 运算符 表达式2
· 运算符为&&时:如果表达式1为false,则result=false,也就是说此时表达式1能够决定整个与运算的值,因此不会再去求表达式2的值。
· 运算符为||时:如果表达式1为true,则result=true,也就是说此时表达式1能够决定整个或运算的值,因此不会再去求表达式2的值。
(四)赋值运算符
= 简单的赋值运算,指定将右边操作数赋值给左边的操作数
+= 相加后再赋值,将左右两边的操作数相加后再赋值给左边的操作数
-= 相减后再赋值,将左右两边的操作数相减后再赋值给左边的操作数
*= 相乘后再赋值,将左右两边的操作数相乘后再赋值给左边的操作数
/= 相除后再赋值,将左右两边的操作数相除后再赋值给左边的操作数
%= 求余后再赋值,将左右两边的操作数进行求余操作后再赋值给左边的操作数
[编码示例]
def main(args: Array[String]): Unit = {
// 赋值运算符
var a = 1 // 把右边的计算结果保存到左边的变量
a += 2 // a+=2 等价于 a = a+2
println(a) //
a -= 1 // a-=1 等价于 a=a-1
println(a) //
a *= 3
println(a) //
a /= 4
println(a) //
a %= 5
println(a) //
}
printfln( a )