Scala(三)运算符

运算符

  运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。

3.1 算术运算符

  1)基本语法

运算符

运算

范例

结果

+

正号

+3

3

-

负号

b=4; -b

-4

+

5+5

10

-

6-4

2

*

3*4

12

/

5/5

1

%

取模(取余)

7%5

2

+

字符串相加

He+llo

Hello

    (1)对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。

    (2)对一个数取模a%b,和Java的取模规则一样。

  2)案例实操

package com.yuange.scala.day01

object ArithmeticOperator {
  def main(args: Array[String]): Unit = {
    //对于除号“/”,它的整数和小除数是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分
    var a1 : Int = 10 / 3     //3
    println("a1=" + a1)

    var a2 : Double = 10 / 3    //3.0
    println("a2=" + a2)

    var a3 : Double = 10.0 / 3    //3.33333
    println("a3=" + a3)
    printf("a3=" + a3.formatted("%.2f") + "\n")  //保留小数点2位,四舍五入

    //对于一个数取模a%b,和java一样
    var a4 = 10 % 3   //1
    println("a4=" + a4)
  }
}

3.2 关系运算符(比较运算符)

  1)基本语法

运算符

运算                                                                          

范例

结果

==

相等于

4==3

false

!=

不等于

4=3

true

<

小于

4<3

false

>

大于

4>3

true

<=

小于等于

4<=3

false

>=

大于等于

4>=3

true

  2)案例实操

package com.yuange.scala.day01

object RelationalOperators {
  def main(args: Array[String]): Unit = {
    // >、>=、<=、<、==、!=
    var n1 : Int = 7
    var n2 : Int = 5

    println(n1 > n2)  //true
    println(n1 >= n2) //true
    println(n1 <= n2) //false
    println(n1 < n2)  //false
    println(n1 == n2) //false
    println(n1 != n2) //true
  }
}

3.3 逻辑运算符

  1)基本语法

    用于连接多个条件(一般来讲就是关系表达式),最终的结果也是一个Boolean值。 

    假定:变量A为true,B为false

运算符

描述

实例

&&

逻辑与

(A && B) 运算结果为 false

||

逻辑或

(A || B) 运算结果为 true

!

逻辑非

!(A && B) 运算结果为 true

  2)案例实操

package com.yuange.scala.day01

object LogicalOperators {
  def main(args: Array[String]): Unit = {
    // &&、||、!
    var a = true
    var b = false

    println(a && b)  //false
    println(a || b)  //true
    println(!a)      //false
    println(!b)      //true
  }
}

3.4 赋值运算符

  1)基本语法

    赋值运算符就是将某个运算后的值,赋给指定的变量。

运算符

描述

实例

=

简单的赋值运算符,将一个表达式的值赋给一个左值

C = A + B 将 A + B 表达式结果赋值给 C

+=

相加后再赋值

C += A 等于 C = C + A

-=

相减后再赋值

C -= A 等于 C = C - A

*=

相乘后再赋值

C *= A 等于 C = C * A

/=

相除后再赋值

C /= A 等于 C = C / A

%=

求余后再赋值

C %= A 等于 C = C % A

<<=

左移后赋值

C <<= 2  等于 C = C << 2

>>=

右移后赋值

C >>= 2  等于 C = C >> 2

&=

按位与后赋值

C &= 2   等于 C = C & 2

^=

按位异或后赋值

C ^= 2   等于 C = C ^ 2

|=

按位或后赋值

C |= 2   等于 C = C | 2

    注意:Scala中没有++--操作符,需要通过+=-=来实现同样的效果

  2)案例实操

package com.yuange.scala.day01

object AssignmentOperators {
  def main(args: Array[String]): Unit = {
    var a1 = 11

    a1 += 1
    a1 -= 1
  }
}

3.5 位运算符

  1)基本语法

运算符

描述

实例

&

按位与运算符

(a & b) 输出结果 12 ,二进制解释: 0000 1100

|

按位或运算符

(a | b) 输出结果 61 ,二进制解释: 0011 1101

^

按位异或运算符

(a ^ b) 输出结果 49 ,二进制解释: 0011 0001

~

按位取反运算符

(~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。

<<

左移动运算符

a << 2 输出结果 240 ,二进制解释: 1111 0000

>>

右移动运算符

a >> 2 输出结果 15 ,二进制解释: 0000 1111

>>>

无符号右移

A >>>2 输出结果 15, 二进制解释: 0000 1111

  2)案例实操

package com.yuange.scala.day01

object BitwiseOperators {
  def main(args: Array[String]): Unit = {
    // <<
    var a1 : Int = 90

    a1 = a1 << 1
    println(a1)
  }
}

原文地址:https://www.cnblogs.com/LzMingYueShanPao/p/14782716.html