运算符

65 阅读2分钟

一,算数运算符

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

%:计算余数,5%2就是5除以2的余数,5%2 = 1

  // 算术运算符

  // 数据类型 7:Int
  //  4:Int
  //   7/4结果是Int
   println(7/4)  // 7/4 = 1
   println(7%4)  // 3
   println(7+4)  // 11
   println(7-4)  // 3
   println(7*4)  // 28
 }
}

注意: '7/4 = 1', '7/4.0 = 1.75'。原因是:7的数据类型是int,4的数据类型也是int,所以结果也是int

二,关系运算符

关系运算符会得到Bool值。scala中的关系运算符如下:

== 等于

!= 不等于

大于

< 小于

=大于等于

<= 小于等于

// 关系运算符
// false true

val a:Boolean = 3 > 2

println(a)
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 || 3 > 4 )  // true
  
  println( !(1>2) ) // true

四,赋值运算符

= 简单的赋值运算,指定将右边操作数赋值给左边的操作数

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

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

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

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

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

// 赋值运算符

  var a = 1 // 把右边的计算结果保存到左边的变量
  
  a +=2 // +=  等于 a = a+2
 println(a) // 3

  a -= 3 // a-=3 等价于 a = a-3
  println(a) // -2

  a *= 3
  println(a) // 等于 a = a*3   3

  a /= 4
  println(a) //  等于 a = a/4   0

  a %= 5
  println(a) //  等于 a = a%5   1
}

计算如下得出结果: 1.png

五, 位运算

常用的位运算符如下:

1. & 按位与运算符。0&1 = 0,  1&0= 0 , 0&0 = 0, 1&1 = 1

2. | 按位或运算符。0|1 = 1,  1|0= 1 , 0|0 = 0, 1|1 = 1

3. ^ 按位异或运算符。0^1 = 1,  1^1= 0, 0^0 = 0

4. ~ 按位取反运算符

5. << 左移运算符。右边补零,放大。

6. >> 右移运算符。左边补零,缩小。

2.png

六,优先级

基本规则:

1. 乘(*)除(/)模(%) > 加(+)减(-)

2. 算术(+-*/%) > 关系(><>=!=) > 赋值(=)

3. && >

3.png

七,浮点数精度问题

0.1 + 0.2 == 0.3 // false

原因是:由于精度的问题,小数的计算会存在误差。

4.png