scala的基本运算

91 阅读2分钟

一、算数运算符

%:计算余数。

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)
println(7-4)
println(7+4)
println(7*4)

注意:7/4 = 1,7/4.0=1.75。原因是:数据类型不一样。

二、关系运算符

关系运算符:用来对数值进行比较。

// 关系运算符: > < == >= !=
// 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中的运算符有三种:
  • 与:&&(并且) 全部为true ===> true
  • 或:||(或者) 有一个为true ===> true
  • 非:!(取反)
举例1:
// 与:&&(并且)  全部为true ===> true

 println(1 > 2 && 3 > 4)  //true
 println(2 > 1 && 4 > 3)  //true
// 或:||(或者)  有一个为true ===> true

println(1 > 2 || 3 > 4)  // false
println(1 > 2 || 4 > 3)  // true
// 非:!(取反)

println(!(1>2))  // true
举例2:判断闰年

请判断2000、2024、2025、1900是否为闰年

    println("请输入一个年份:")
    val year:Int = scala.io.StdIn.readInt()

    var result:Boolean =(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)

    if(result) {
        println(s"$year 是闰年")
      } else {
        println(s"$year 不是闰年")
      }

四、赋值运算符

运算符:

  • = 简单的赋值运算

  • += 相加后再赋值

  • -= 相减后再赋值

  • *= 相乘后再赋值

  • /= 相除后再赋值

  • %= 求余后再赋值

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

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

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

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

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

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

运行结果如下图:

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

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

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

六、优先级

基本规则:

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

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

3. && > ||

val result = 10 - 2 + 3 * 4 / 2  
println(result) // 问题1

val a = true  
val b = false  
val c = false  
println(a || b && c) // 问题2

七、大数问题

一种整数都有自己的表达范围,一旦超过了这个范围就会报错,或者是导致计算异常。

var a = BigInt("11111111111111111111111")
		var b = BigInt("11111111111111111111111")
		var c = a * b
		println(c)

批注 2025-09-22 150054.png