本文概述
- 算术运算符
- 关系运算符
- 赋值运算符
- 一元运算符
- 逻辑运算符
- 按位运算
- 算术运算符
- 关系运算符
- 赋值运算符
- 一元运算符
- 按位运算
- 逻辑运算符
操作员 | 描述 | 表达 | 翻译成 |
---|---|---|---|
+ | Addition | a + b | 加(b) |
– | Subtraction | a-b | a.minus(b) |
* | Multiply | a*b | a.times(b) |
/ | Division | a/b | a.div(b) |
% | Modulus | a%b | 雷姆(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);
}
输出:
1555020
关系运算符关系运算符显示关系并在操作数之间进行比较。以下是不同的关系运算符:
操作员 | 描述 | 表达 | 翻译成 |
---|---|---|---|
> | greater than | a> b | a.compateTo(B)> 0 |
< | Less than | 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 = 5val b = 10val max = if (a >
b) {println("a is greater than b.")a} else{println("b is greater than a.")b}println("max = $max")}
【Kotlin运算符】
输出:
b is greater than a.max = 10
赋值运算符赋值运算符“ =”用于为另一个变量赋值。值的分配从右到左。
操作员 | 描述 | 表达 | 转换成 |
---|---|---|---|
+= | 添加并分配 | a+=b | a.plusAssign(b) |
-= | 减去并分配 | a-=b | a.minusAssign(b) |
*= | 乘法和分配 | a*=b | a.timesAssign(b) |
/= | 划分和分配 | a/=b | a.divAssign(b) |
%= | mod和分配 | a%=b | a.remAssign(b) |
fun main(args : Array<
String>
) {var a =20;
var b=5a+=bprintln("a+=b :"+ a)a-=bprintln("a-=b :"+ a)a*=bprintln("a*=b :"+ a)a/=bprintln("a/=b :"+ a)a%=bprintln("a%=b :"+ a)}
输出:
a+=b :25a-=b :20a*=b :100a/=b :20a%=b :0
一元运算符一元运算符仅与单个操作数一起使用。以下是下面给出的一些一元运算符。
操作员 | 描述 | 表达 | 转换成 |
---|---|---|---|
+ | unary plus | +a | a.unaryPlus() |
– | 一元减 | -a | a.unaryMinus() |
++ | 加1 | ++一 | a.inc() |
— | 减1 | – a | a.dec() |
! | not | !a | a.not() |
fun main(args: Array<
String>
){var a=10var b=5var flag = trueprintln("+a :"+ +a)println("-b :"+ -b)println("++a :"+ ++a)println("--b :"+ --b)println("!flag :"+ !flag)}
输出:
+a :10-b :-5++a :11--b :4!flag :false
逻辑运算符逻辑运算符用于检查操作数之间的条件。逻辑运算符列表如下。
操作员 | 描述 | 表达 | 转换成 |
---|---|---|---|
& & | 如果所有表达式都为true, 则返回true | (a> b)& & (a> c) | (a> b)和(a> c) |
|| | 如果任何表达式为真, 则返回真 | (a> b)|| (a> c) | (a> b)或(a> c) |
! | 返回表达式的补码 | !a | a.not() |
fun main(args: Array<
String>
){var a=10var b=5var c=15var flag = falsevar result: Booleanresult = (a>
b) &
&
(a>
c)println("(a>
b) &
&
(a>
c) :"+ result)result = (a>
b) || (a>
c)println("(a>
b) || (a>
c) :"+ result)result = !flagprintln("!flag :"+ result)}
输出:
(a>
b) &
&
(a>
c) :false(a>
b) || (a>
c) :true!flag :true
按位运算在Kotlin中, 没有任何特殊的按位运算符。使用命名函数完成按位运算。
命名功能 | 描述 | 表达 |
---|---|---|
shl (bits) | 左移符号 | a.shl(b) |
shr (bits) | 签名右移 | a.shr(b) |
ushr (bits) | 无符号右移 | a.ushr(b) |
and (bits) | bitwise and | 和(b) |
or (bits) | bitwise or | a.or(b) |
xor (bits) | bitwise xor | a.xor(b) |
inv() | 按位逆 | a.inv() |
fun main(args: Array<
String>
){var a=10var b=2println("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): 40a.shr(b): 2a.ushr(b:) 2a.and(b): 2a.or(b): 10a.xor(b): 8a.inv(): -11
推荐阅读
- Kotlin递归函数
- Kotlin Null安全类型
- Kotlin嵌套try-catch块
- Kotlin嵌套类和内部类
- Kotlin MutableSet接口
- Kotlin MutableMap接口
- Kotlin MutableList(mutableListOf())
- Kotlin可变数组
- Kotlin多重捕获块