九月的第三个星期,天气不错的一天
算数运算符(比较简单)
- 算数运算符有:+ - * / %
- +-*/这四个与普通运算一样,%是除了一个数之后取余。
- /只取整数,如5/3=1。
关系运算符
关系运算符有:等于(==),不等于(!=),大于(>),小于(<),大于等于(>=),小于等于(<=)
逻辑运算符
- Scala中的逻辑运算跟Java中一样,有与、或、非三种情况
-
- 与:&& 运算表达式有一个为假,则整个表达式为假false
- 或:|| 运算表达式有一个为真,则整个表达式为真
- 非:! 就是取反的意思,与参与表达式相反。
短路运算符
-
短路运算的核心思想是:由&&或||这两个运算符构建出来的表达式,只会对整个运算结果有决定作用的部分进行求值。
-
Scala的短路运算法则:result=表达式1 运算符 表达式2
-
运算符为&&时:如果表达式1为false,则result=false,也就是说此时表达式1能够决定整个与运算的值,因此不会再去求表达式2的值。
-
运算符为||时:如果表达式1为true,则result=true,也就是说此时表达式1能够决定整个或运算的值,因此不会再去求表达式2的值。
赋值运算符
用于给变量赋值
- =:基本赋值
- +=:加法赋值(a += b 等价于 a = a + b)
- -=:减法赋值
- *=:乘法赋值
- /=:除法赋值
- %=:取余赋值
位运算符
下面是用于对整数进行位操作
- &:按位与运算符。0&1 = 0, 1&0= 0 , 0&0 = 0, 1&1 = 1
- |:1. 按位或运算符。0|1 = 1, 1|0= 1 , 0|0 = 0, 1|1 = 1
- ^:1. 按位异或运算符。0^1 = 1, 1^1= 0, 0^0 = 0
- ~:按位取反运算符
- <<:左移运算符。右边补零,放大。
- '>>':右移运算符。左边补零,缩小。
运算符的优先级
运算符优先级规则如下:
- 乘(*)除(/)模(%) > 加(+)减(-)
- 算术(+-*/%) > 关系(><>=!=) > 赋值(=)
- && >||
- 如果不清楚顺序,可用()来调整
Scala的相等性
判断两个值是否相等有两种方式
- == 比较的对象只有数值,只要==两边的值相等,就返回true。
- 用eq引用对比
浮点数精度问题
由于精度问题,小数计算可能存在误差,可使用BigDecimal()函数。
大数问题
一种整数都有自己的表达范围,例如Int类型的最大值是2147483647,一旦超过了这个范围就会报错,或者是导致计算异常。