(一)运算符概述
· 逻辑运算符:包含逻辑与、逻辑或、逻辑非三种运算符,也是用于比较的。
· 位运算符:用于对二进制数的位进行左移、右移、取反等操作。
(二)Scala的算术运算符
println(7/4) //结果为:1
println(7%4) //结果为:3
println(7-4) //结果为:3
println(7+4) //结果为:11
println(7*4) //结果为:28
注意7/4=1,原因是数据类型为Int的两个数相除的结果也是Int类型
(三)Scala的关系运算符
关系运算符会得到Bool值。scala中的关系运算符如下:
== 等于
!= 不等于
大于 >
< 小于
大于等于 >=
<= 小于等于
代码示范
println(7==4) //结果为:false
println(7>4 //结果为:true
println(7!=4) //结果为:ture
println(7<4) //结果为:false
println(7>=4) //结果为:ture
println(7<=4) //结果为:false
(四)Scala的逻辑运算符
Scala中的逻辑运算跟Java中一样,也是与、或、非三种情况,具体如下。
· 与:&& 运算表达式有一个为假,则整个表达式为假false。
· 或:|| 运算表达式有一个为真,则整个表达式为真true。
代码示例
printfln( 1 > 2 && 2 > 1 ) 结果为:flase
printfln( 3 < 5 || 5 > 3 ) 结果为:ture
printfln( !(3>5) ) 结果为:ture
[学生练习] 判断一个年份是否是闰年 根据国际标准,一个年份被视为闰年的条件是,如下条件满足任意一个:
(1)能够被4整除,并且不能被100整除的年份是闰年。
(2)能够被400整除的年份同样也是闰年。
代码
print("请输入一个年份:")
val year: Int = scala.io.StdIn.readInt()
val result: Boolean = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)
if (result) {
println(s"$year 是闰年")
}
else {
println(s"$year 不是闰年")
如果定义一个变量并且不打算改变这个变量的值,建议用val
(五)Scala的短路运算
短路运算的核心思想是:由&&或||这两个运算符构建出来的表达式,只会对整个运算结果有决定作用的部分进行求值。
Scala的短路运算法则:result=表达式1 运算符 表达式2
· 运算符为&&时:如果表达式1为false,则result=false,也就是说此时表达式1能够决定整个与运算的值,因此不会再去求表达式2的值。
· 运算符为||时:如果表达式1为true,则result=true,也就是说此时表达式1能够决定整个或运算的值,因此不会再去求表达式2的值。
(六)Scala的赋值运算符
= 简单的赋值运算,指定将右边操作数赋值给左边的操作数
+= 相加后再赋值,将左右两边的操作数相加后再赋值给左边的操作数
-= 相减后再赋值,将左右两边的操作数相减后再赋值给左边的操作数
*= 相乘后再赋值,将左右两边的操作数相乘后再赋值给左边的操作数
/= 相除后再赋值,将左右两边的操作数相除后再赋值给左边的操作数
%= 求余后再赋值,将左右两边的操作数进行求余操作后再赋值给左边的操作数
var a = 1
a += 2 //a=1+2=3
println(a)
a -= 3 //a=3-3=0
println(a)
a *= 3 //a=0*3=0
println(a)
a /= 4 //a=0/4=0
println(a)
a %= 5 //a=0%5=0
println(a)