Scala的基本运算

124 阅读3分钟

(一)运算符概述

· 算术运算符:只能用来做加、减、乘、除等算术运算。

· 关系运算符:用来对数值进行比较,比如>、<=、>=等。

· 逻辑运算符:包含逻辑与、逻辑或、逻辑非三种运算符,也是用于比较的。

· 位运算符:用于对二进制数的位进行左移、右移、取反等操作。

· 赋值运算符:用于将一个值进行赋值,例如=、+=、-=等

(二)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)