Scala的基本运算

57 阅读3分钟

算术运算符

%:计算余数。如:5%2 = 1(5除以2的余数)

// 算数运算符

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

println(7/4.0) // 7/4.0 =1.75
println(7%4) //3 取余
println(2%4) //2 取余
println(7-4) //3
println(7*4) // 28

注意:7/4 = 1 , 7/4.0 = 1.75

原因是:数据类型不一样。

关系运算符

关系运算符有如下 :> < == >= <= !=

//关系运算符 :> < == >= <= !=
// false true

println(7==4) //false
println(7>4)  //true
println(7>=4)  //true
println(7<4)  //false
println(7<=4) //false
println(7!=4)  //true

逻辑运算符

逻辑运算符:

&&(并且) 全部为true ==> true。

||(或者) 有一个为true ==>true。

!(取反)。

println(1 > 2 && 3 > 4)  //false
println(2 > 1 && 4 > 3)  //true

println(1 > 2 || 3 > 4 || 5 > 6) //fales
println(2 > 1 || 3 > 4)  //true

println( ! (1>2)) //true
println( ! (1<2)) //false

例题如下,写出对应代码:

1.让用户输入一个整数,表示年份。 2.判断这个年份是否是闰年。 3.输出结果 。

val year:Int = scala.io.StdIn.readInt()
//    2000 ===>是闰年
//    2024 ===>是闰年
//    2025 ===>不是闰年
//    1990 ===>不是闰年

// 如果你定义了一个变量 并且之后不打算修改它的值 那么建议使用val
val  result:Boolean =(year % 4 == 0 && year % 100 != 0) || year % 400 ==0
  if(result) {
    println(s"$year 是闰年")
  }  else {
    println(s"$year 不是闰年")
  }

赋值运算符

赋值运算符有如下:+= -= *= /= %= = 简单的赋值运算,指定将右边操作数赋值给左边的操作数

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

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

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

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

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

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

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

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

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

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

位运算

常用的位运算符如下:

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

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

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

println(5 & 4) //4
println(5 | 4) //5

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

Scala中运算符的优先级

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

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

3. && > ||

答案 :12 true

Snipaste_2025-09-16_11-39-36.png

浮点数精度问题

解释:由于精度的问题,小数的计算会存在误差。

解决方案:使用BigDecimal()函数。

Scala中大数问题

一种整数都有自己的表达范围,例如Int类型的最大值是2147483647,一旦超过了这个范围就会报错,或者是导致计算异常。要用BigInt(数字字符串)来解决这个问题

批注 2025-09-22 150001.png