运算符
算数运算符
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
+ | 正号 | +3 | 3 |
- | 负号 | b=4; -b | -4 |
+ | 加 | 5 + 5 | 10 |
- | 减 | 6 - 4 | 2 |
* | 乘 | 3 * 4 | 12 |
/ | 除 | 12 / 4 | 3 |
% | 取模(取余) | 7 % 5 | 2 |
+ | 字符串相加 | "He" + "llo" | "Hello" |
object Test01_Operator {
def main(args: Array[String]): Unit = {
// 算数运算符
val result1: Int = 10 / 3
println(result1) // 3
val result2: Double = 10 / 3
println(result2) // 3
val result3: Double = 10.0 / 3
println(result3) // 3.333
println(result3.formatted("%.2f"))
}
}
关系运算符
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
== | 相等于 | 4 == 3 | false |
!= | 不等于 | 4 != 3 | true |
< | 小于 | 4 < 3 | false |
> | 大于 | 4 > 3 | true |
<= | 小于等于 | 4 <= 3 | false |
>= | 大于等于 | 4 >= 3 | true |
package chapter03
object Test01_Operator {
def main(args: Array[String]): Unit = {
// 比较运算符
val s1: String = "hello"
val s2: String = new String("hello")
// 在scala中使用==比较字符串已经就是比较内容了,而不是内存
println(s1 == s2)
// 判断s1和s2的引用地址
println(s1.eq(s2))
}
}
逻辑运算符
用于连接多个条件(一般来讲就是关系表达式),最终的结果也是一个Boolean值。
运算符 | 描述 | 实例 |
---|---|---|
&& | 逻辑与 | A&&B |
|| | 逻辑或 | A||B |
! | 逻辑非 | !A |
具有短路特性
package chapter03
object Test01_Operator {
def main(args: Array[String]): Unit = {
// 逻辑运算符
// 判断一个字符串是否为空
def isNotEmpty(str: String): Boolean = {
return str != null && str.trim == ""
}
println(isNotEmpty(null))
}
}
赋值运算符
赋值运算符就是将某个运算后的值,赋给指定的变量。
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符,将一个表达式的值赋给一个左值 | C = A + B |
+= | 相加后再赋值 | C += A => C = C + A |
-= | 相减后再赋值 | C -= A => C = C - A |
*= | 相乘后再赋值 | C *= A => C = C * A |
/= | 相除后再赋值 | C /= A => C = C / A |
%= | 求余后再赋值 | C %= A => C = C % A |
<<= | 左移后赋值 | C <<= 2 => C = C << 2 |
>>= | 右移后赋值 | C >>= 2 => C = C >> 2 |
&= | 按位与后赋值 | C &= 2 => C = C & 2 |
^= | 按位异或后赋值 | C ^= 2 => C = C ^ 2 |
|= | 按位或后赋值 | C |= 2 => C = C | 2 |
Scala中没有++, --这样的自增自减操作
package chapter03
object Test01_Operator {
def main(args: Array[String]): Unit = {
// 赋值运算符
var a: Byte = 10
var b: Int = 12
// a += 1 // error
b += 1
println(b)
// b++ // error
}
}