1.算数运算符
什么是运算符?
运算符就一个特殊的符号,使用运算符可以将一个或多个操作数连成可执行的语句,用于实现不同的功能。
运算符的分类
按照对数据操作的功能不同,我们可以把Scala运算符分为以下五大类。
· 逻辑运算符:包含逻辑与、逻辑或、逻辑非三种运算符,也是用于比较的。
· 位运算符:用于对二进制数的位进行左移、右移、取反等操作。
· 赋值运算符:用于将一个值进行赋值,例如=、+=、-=等。
代码如下图所示:
scala
体验AI代码助手
代码解读
复制代码
//算数运算符
//数据类型 7:Int
// 4:Int
// 7/4的结果是Int
println(7/4)
println(7%4)
println(7-4)
println(7+4)
println(7*4)
}
图片如下图所示:
2.Scala的关系运算符
关系运算符会得到Bool值。scala中的关系运算符如下:
关系运算符会得到Bool值。scala中的关系运算符如下:
== 等于
!= 不等于
大于
< 小于
= 大于等于
<= 小于等于
代码如下:
scala
体验AI代码助手
代码解读
复制代码
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
图片如下图所示:
3.Scala的逻辑运算符
Scala中的逻辑运算跟Java中一样,也是与、或、非三种情况,具体如下。
· 与:&& 运算表达式有一个为假,则整个表达式为假false。
· 或:|| 运算表达式有一个为真,则整个表达式为真true。
实例: 本例子为计算是否为闰年的实例:
scala
体验AI代码助手
代码解读
复制代码
object base09 {
def main(args: Array[String]): Unit = {
//判断闰年
/*
1.让用户输入一个整数,表示年份
2.判断这个年份是否是闰年
3.输出结果
*/
print(" 请输入年份:" )
val year:Int = scala.io.StdIn.readInt()
//2000 ===> 是
//2024 ===> 是
//2025 ===> 不是
//1900 ===> 不是
var result:Boolean = (year % 400 == 0) || (year % 100 != 0 && year % 4 == 0)
if(result) {
println(s"$year 是闰年")
} else {
println(s"$year 不是闰年")
}
}
}
图片如图所示:
4.Scala的赋值运算符
= 简单的赋值运算,指定将右边操作数赋值给左边的操作数
+= 相加后再赋值,将左右两边的操作数相加后再赋值给左边的操作数
-= 相减后再赋值,将左右两边的操作数相减后再赋值给左边的操作数
*= 相乘后再赋值,将左右两边的操作数相乘后再赋值给左边的操作数
/= 相除后再赋值,将左右两边的操作数相除后再赋值给左边的操作数
%= 求余后再赋值,将左右两边的操作数进行求余操作后再赋值给左边的操作数
代码如下:
scala
体验AI代码助手
代码解读
复制代码
object base10 {
def main(args: Array[String]): Unit = {
//赋值运算符
var a = 1 // 把右边的计算结果保存到左边的变量
a += 2 // a += 2 等价于 a = a + 2 a=3
println(a)
var b = 1
b -= 3 // b -= 3 等价于 b = b - 3 b=-2
println(b)
var c = 1
c *= 3 // c *= 3 等价于 c = c * 3 c=3
println(c)
var d:Double = 1
d /= 4 // d /= 4 等价于 d = d / 4 d=0.25
println(d)
}
}
注意: 代码中的变量容易搞混,所以要区分开来,且有的计算结果不是整数,所以要确定好数据类型。
图片如下图所示:
5.scala的位运算
常用的位运算符如下:
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. >> 右移运算符。左边补零,缩小。
代码如下:
scala
体验AI代码助手
代码解读
复制代码
object base11 {
def main(args: Array[String]): Unit = {
//位运算
println(5 & 4)//4
println(5 | 4)//5
println(4<<2)//16
println(4>>2)//1
}
}
图片如下:
6.scala的运算优先级
scala
体验AI代码助手
代码解读
复制代码
val result = 10 - 2 + 3 * 4 / 2
println(result) // 问题1
val a = true
val b = false
val c = false
println(a || b && c) // 问题2
晕算结果如图所示:
基本规则:
1. 乘(*)除(/)模(%) > 加(+)减(-)
2. 算术(+-*/%) > 关系(><>=!=) > 赋值(=)
3. && >
作者:学习通转掘金
链接:juejin.cn/post/755024…
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。