運算符是對運算元(值或變數)執行操作的特殊字元,Kotlin中有各種類型運算符。它們如下所示 -
- 算術運算符
- 關係運算符
- 賦值運算符
- 一元運算符
- 按位運算
- 邏輯運算符
1. 算術運算符
算術運算符用於執行基本的數學運算,如加法(+
),減法(-
),乘法(*
),除法(/
)等。
運算符 | 描述 | 運算式 | 轉換為 |
---|---|---|---|
+ |
加法 | a+b |
a.plus(b) |
- |
減法 | a-b |
a.minus(b) |
* |
乘法 | a*b |
a.times(b) |
/ |
除法 | a/b |
a.div(b) |
% |
模除 | a%b |
a.rem(b) |
算術運算符的例子
fun main(args : Array<String>) {
var a=10;
var b=5;
println(a+b);
println(a-b);
println(a*b);
println(a/b);
println(a%b);
}
執行上面示例代碼,得到以下結果 -
15
5
50
2
0
2. 關係運算符
關係運算符顯示運算元之間的關係和比較。以下是幾種常見的關係運算符:
運算符 | 描述 | 運算式 | 轉換為 |
---|---|---|---|
> |
大於 | a>b |
a.compateTo(b)>0 |
< |
小於 | a<b |
a.compateTo(b)<0 |
>= |
大於或等於 | a>=b |
a.compateTo(b)>=0 |
<= |
小於或等於 | a<=b |
a?.equals(b)?:(b===null) |
== |
等於 | a==b |
a?.equals(b)?:(b===null) |
!= |
不等於 | a!=b |
!(a?.equals(b)?:(b===null)) |
關係運算符的示例
fun main(args : Array<String>) {
val a = 5
val b = 10
val max = if (a > b) {
println("a is greater than b.")
a
} else{
println("b is greater than a.")
b
}
println("max = $max")
}
執行上面示例代碼,得到以下結果 -
b is greater than a.
max = 10
3. 賦值運算符
賦值運算符(=
)用於將值賦給另一個變數。值的分配從右到左。
運算符 | 描述 | 運算式 | 轉換為 |
---|---|---|---|
+= |
相加和賦值 | a+=b |
a.plusAssign(b) |
-= |
相減和賦值 | a-=b |
a.minusAssign(b) |
*= |
相乘和賦值 | a*=b |
a.timesAssign(b) |
/= |
相除和賦值 | a/=b |
a.divAssign(b) |
%= |
模除和賦值 | a%=b |
a.remAssign(b) |
賦值運算符的示例
fun main(args : Array<String>) {
var a =20;var b=5
a+=b
println("a+=b :"+ a)
a-=b
println("a-=b :"+ a)
a*=b
println("a*=b :"+ a)
a/=b
println("a/=b :"+ a)
a%=b
println("a%=b :"+ a)
}
執行上面示例代碼,得到以下結果 -
a+=b :25
a-=b :20
a*=b :100
a/=b :20
a%=b :0
4. 一元運算符
一元運算符僅與單個運算元一起使用。 以下是一些常用一元運算符。
運算符 | 描述 | 運算式 | 轉換為 |
---|---|---|---|
+ |
一元加 | +a |
a.unaryPlus() |
- |
一元減 | -a |
a.unaryMinus() |
++ |
遞增1 | ++a |
a.inc() |
-- |
遞減1 | --a |
a.dec() |
! |
非 | !a |
a.not() |
一元運算符的示例
fun main(args: Array<String>){
var a=10
var b=5
var flag = true
println("+a :"+ +a)
println("-b :"+ -b)
println("++a :"+ ++a)
println("--b :"+ --b)
println("!flag :"+ !flag)
}
執行上面示例代碼,得到以下結果 -
+a :10
-b :-5
++a :11
--b :4
!flag :false
5. 邏輯運算符
邏輯運算符用於檢查運算元之間的條件。邏輯運算符列表如下 -
運算符 | 描述 | 運算式 | 轉換為 |
---|---|---|---|
&& |
如果所有運算式都為true ,則返回true |
(a>b) && (a>c) | (a>b) and (a>c) |
ΙΙ | 如果任何運算式為true ,則返回true |
(a>b) ΙΙ (a>c) | (a>b) or(a>c) |
! |
返回表達的補充 | !a |
a.not() |
邏輯運算符的示例
fun main(args: Array<String>){
var a=10
var b=5
var c=15
var flag = false
var result: Boolean
result = (a>b) && (a>c)
println("(a>b) && (a>c) :"+ result)
result = (a>b) || (a>c)
println("(a>b) || (a>c) :"+ result)
result = !flag
println("!flag :"+ result)
}
執行上面示例代碼,得到以下結果 -
(a>b) && (a>c) :false
(a>b) || (a>c) :true
!flag :true
6. 按位運算
在Kotlin中,沒有任何特殊的按位運算符。都是使用命名函數完成按位運算。
運算符 | 描述 | 運算式 |
---|---|---|
shl(bits) |
符號左移 | a.shl(b) |
shr(bits) |
符號右移 | a.shr(b) |
ushr(bits) |
無符號右移 | a.ushr(b) |
and(bits) |
按位與 | a.and(b) |
or(bits) |
按位或 | a.or(b) |
xor(bits) |
按位異或 | a.xor(b) |
inv() |
按位反轉 | a.inv() |
7. 按位運算的示例
fun main(args: Array<String>){
var a=10
var b=2
println("a.shl(b): "+a.shl(b))
println("a.shr(b): "+a.shr(b))
println("a.ushr(b:) "+a.ushr(b))
println("a.and(b): "+a.and(b))
println("a.or(b): "+a.or(b))
println("a.xor(b): "+a.xor(b))
println("a.inv(): "+a.inv())
}
執行上面示例代碼,得到以下結果 -
a.shl(b): 40
a.shr(b): 2
a.ushr(b:) 2
a.and(b): 2
a.or(b): 10
a.xor(b): 8
a.inv(): -11
上一篇:
Kotlin類型轉換
下一篇:
Kotlin運算式、語句和塊