运算符

60 阅读4分钟

算数运算符

Scala中的算数运算符:+ - * / % %:计算余数。 5%2 就是 5除以2的余数

// 算数运算符


// 数据类型。 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。原因是:编程语言中整数除法与浮点除法的规则差异 具体解释如下:

1. 关键概念:操作数类型决定除法规则

在多数编程语言(如 Python、Java、C++ 等)中,除法运算的结果类型由参与运算的 “操作数类型” 决定,而非结果本身:

  • 若两个操作数均为 整数(int) ,执行 整数除法(只保留商的整数部分,舍弃小数);
  • 若至少有一个操作数为 浮点数(float/double) ,执行 浮点除法(保留完整的小数部分,结果为浮点数)。

2. 对两个表达式的具体分析

(1)7/4 = 1:整数除法
  • 操作数 7 和 4 均为 整数类型,因此触发 “整数除法” 规则;
  • 计算逻辑:7 ÷ 4 的数学结果是 1.75,但整数除法会直接舍弃小数部分(不四舍五入),最终结果为整数 1
(2)7/4.0 = 1.75:浮点除法
  • 操作数 7 是整数,但 4.0 是 浮点数类型(带小数点的数值默认视为浮点数);
  • 由于存在浮点数操作数,触发 “浮点除法” 规则;
  • 计算逻辑:完整保留 7 ÷ 4 的数学结果 1.75,最终结果为浮点数 1.75。### 3. 延伸验证:其他组合的结果

3. 若将整数转为浮点数,结果会一致,例如:

  • 7.0/47.0 是浮点数,4 是整数 → 浮点除法 → 结果 1.75
  • 7.0/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

以上是代码,可以进行填充,然后运行结果如图所示:

image.png

判断闰年

当我想要判断一个年份是不是闰年时,可以选择列举以下代码:


object base09 {
  def main(args: Array[String]): Unit = {
    // 让一个用户输入一个整数,表示年份
    println("请输入年份:")
    val year = scala.io.StdIn.readInt()
    // 判断这个年份是否为闰年
    val isLeapYear = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0
    // 输出结果
    if (isLeapYear) {
      println(s"$year 是闰年")
    } else {
      println(s"$year 不是闰年")
    }
  }
}

点击运行代码,运行情况如图所示:

image.png 当我随意点击一个年份,这个运行的代码可以给我判断这个年份是否为闰年,如图:

image.png

赋值运算符

当我想要给一个字母赋值的时候,我们就可以用到赋值运算符,可以敲击以下代码:


object base10 {
  def main(args: Array[String]): Unit = {
    // 赋值运算符

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

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

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

    a *= 3
    println(a) //

    a /= 4
    println(a) //

    a %= 5
    println(a) //
  }
}

运行结果如图所示:

image.png 常见的赋值运算符包括:

  1. 基本赋值运算符(= :这是最基础的赋值运算符,用于将右侧表达式的值赋给左侧的变量。例如 a = 5,就是把 5 赋值给变量 a

  2. 复合赋值运算符

    • 加法赋值运算符(+= :例如 a += 3,等价于 a = a + 3,将变量 a 的值与右侧的数相加后,再赋值给 a
    • 减法赋值运算符(-= :如 a -= 2,等价于 a = a - 2,把变量 a 的值减去右侧的数后再赋值给 a
    • 乘法赋值运算符(*=a *= 4 等价于 a = a * 4,变量 a 的值乘以右侧的数后赋值给 a
    • 除法赋值运算符(/=a /= 2 等价于 a = a / 2,变量 a 的值除以右侧的数后赋值给 a(注意整数除法和浮点除法的差异)。
    • 取模赋值运算符(%=a %= 3 等价于 a = a % 3,变量 a 的值对右侧的数取模后赋值给 a,取模运算得到的是除法的余数

位运算

首先,在了解位运算之前,需要了解一下它的运算规则 位运算的运算符号有:& | ^ &的运算规则是1&0=0,1&1=1,0&0=0 |的运算规则是1|1=1,1|0=1,0|0=0 ^的运算规则是0^0=0,0^1=1,1^0=1,1^1=0