scala基本运算

59 阅读2分钟

按照对数据操作的功能不同,我们可以把Scala运算符分为以下五大类。

算术运算符:只能用来做加、减、乘、除等算术运算。

关系运算符:用来对数值进行比较,比如>、<=、>=等。

逻辑运算符:包含逻辑与、逻辑或、逻辑非三种运算符,也是用于比较的。

位运算符:用于对二进制数的位进行左移、右移、取反等操作。

赋值运算符:用于将一个值进行赋值,例如=、+=、-=等。

算术运算符

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

// 算术运算符


// 数据类型。7:Int
//         4:Int
//          7/4结果是Int
println(7/4) // 7/4 = 1

println(7/4.0) // 7/4 = 1

println(7%4)
println(7-4)
println(7+4)
println(7*4)

注意:7/4 = 17/4 = 1.75。原因是:数据类型的自动转换

关系运算符

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

逻辑运算符

与:&& 运算表达式有一个为假,则整个表达式为假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(2 > 1 || 4 > 3) // true
println( !(1>2) ) // true

赋值运算符

Scala中的赋值运算符:=,+=,-=,*=,/=,%=

// 赋值运算符

var a = 1 // 把右边的计算结果保存到左边的变量

a += 2 // a+=2 等价于a = a = a+2
println(a)

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

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

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

a %= 5 // a %= 5 等价于 a = a % 5
println(a)

位运算符

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. >> 右移运算符。左边补零,缩小。

// 位运算
println(5 & 4)
println(5 | 4) // 5

println(4<<2) // 16
println(4>>2) // 1

Scala中运算符的优先级

基本规则:

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

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

3. && >

object base11 {
  def main(args: Array[String]): Unit = {
    val result = 10 - 2 + 3 * 4 / 2
    println(result)
  }
}