算数运算符
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/4:7.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
以上是代码,可以进行填充,然后运行结果如图所示:
判断闰年
当我想要判断一个年份是不是闰年时,可以选择列举以下代码:
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 不是闰年")
}
}
}
点击运行代码,运行情况如图所示:
当我随意点击一个年份,这个运行的代码可以给我判断这个年份是否为闰年,如图:
赋值运算符
当我想要给一个字母赋值的时候,我们就可以用到赋值运算符,可以敲击以下代码:
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) //
}
}
运行结果如图所示:
常见的赋值运算符包括:
-
基本赋值运算符(
=) :这是最基础的赋值运算符,用于将右侧表达式的值赋给左侧的变量。例如a = 5,就是把5赋值给变量a。 -
复合赋值运算符:
- 加法赋值运算符(
+=) :例如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