所有语言的运算符基本都是一样的,不外乎就是+、-、*、/.运算符是对操作数(变量和值)执行运算的特殊符号(字符)。例如,+ 是执行加法的运算符。
算术运算符
运算符 | 描述 |
---|---|
+ | 加法运算符(也可以用户字符串的连接拼接) |
- | 减法运算符 |
* | 乘法运算符 |
/ | 除法运算符(取整数) |
% | 求模运算符(取余数) |
下面我们就通过示例来对这几个运算符的运行效果
println("5+2="+(5+2))
println("5-2="+(5-2))
println("5*2="+(5*2))
println("5/2="+(5/2))
println("5%2="+(5%2))
输出结果
5+2=7
5-2=3
5*2=10
5/2=2
5%2=1
注:运算符“/”和“%”左右两边都是整数的时候,右边的除数是不能为0,不然编译是不能通过的,当“/”和“%”左右两边都不是整数的时候,除数是0或是0.0的时候又是什么样子的呢?
println("5/0.0="+(5/0.0))
println("5%0.0="+(5%0.0))
println("5.0/0="+(5.0/0))
println("5.0%0="+(5.0%0))
输出结果:
5/0.0=Infinity
5%0.0=NaN
5.0/0=Infinity
5.0%0=NaN
Infinity代表无穷大,NaN代表非数字
赋值运算符“=”
赋值运算符就是给变量赋值,在“=”的左边是被赋值的变量,“=”的右边就是给赋的值,可以是一个字面量(var a=5,var b = 6)也可以是一个表达式(var x= a+b)或是一个函数的返回值。
前缀运算符
运算符 | 描述 | 示例 |
---|---|---|
+ | 一元加 | +a |
- | 一元减 | -a |
! | 取反 | !b |
++ | 递增:+1 | + +a或a++ |
-- | 递减:-1 | --a或a-- |
var a = 5
var b = -3
println("+a=" + (+a))
println("-a=" + (-a))
println("+b=" + (+b))
println("-b=" + (-b))
println("++a=" + (++a))
println("a++=" + (a++))
运行结果:
+a=5
-a=-5
+b=-3
-b=3
++a=6
a++=6
一元运算符就是算术中的取正、取反,正数变负数、负数变正数,而“!”只对Boolean类型的变量进行取反操作
对单个变量进行++操作之后,变量输入的结果都是一样的,最终都会增1,如果在算术运算中会是什么样子的呢
var a = 5
println("a++ +2=" + (a++ + 2))
println("a=" + a)
输入结果是:
a++ +2=7
a=6
var a = 5
println("++a +2=" + (++a + 2))
println("a=" + a)
输入结果是:
++a +2=8
a=6
是不是发现++在前和在后结算的结果是不一样的,对变量本身而言++在前在后,变量都是增1,但是表达式中就不一样了,在前,是变量在增加1后在参与表达式计算,++在变量之后是先参与表达式计算,之后再增加1,所以最后变量a的输入结果都是一样的在原有的基础上增+1,表达式就不一样了。
比较运算符
比较运算符的结果都是一个Boolean类型的值,true和false,要么对要么错,没有第三种可能,基本用在条件语句中 if或when如:
if (a>b){
}else{
}
运算符 | 描述 | 示例 |
---|---|---|
> | 大于 | a>b |
>= | 大于或等于 | a>=b |
< | 小于 | a<b |
<= | 小于或等于 | a<=b |
== | 等于 | a==b |
!= | 不等于 | a!=b |
var a = 5
var b = 6
println("a="+a)
println("b="+b)
println("(a>b)="+(a>b))
println("(a>=b)="+(a>=b))
println("(a<b)="+(a<b))
println("(a<=b)="+(a<=b))
println("(a!=b)="+(a!=b))
输出结果:
a=5
b=6
(a>b)=false
(a>=b)=false
(a<b)=true
(a<=b)=true
(a!=b)=true
逻辑运算符
Kotlin中逻辑运算符有两个“||”和“&&”
运算符 | 描述 | 示例 |
---|---|---|
&& | 所有表达式都是true的时候结果才是true否则是false | a&&b |
∣∣ | 只要有一个表达式结果是true,结果就是true否则就是false | a∣∣ b |
var a = 5
var b = 6
if (a > b || a == b) {
println("a > b || a == b 是true")
} else {
println("a > b || a == b 是false")
}
in和!in运算符
in英文的意思就是“在...之内”的意思,实际也就是这个意思,表示某一个数值或变量是不是在某一个集合中。
接下来我们定义一个字符's',在定义一个字符串“string”,来看看字符s是不是在字符串string中
var a = 'i'
var b = "string"
println("s in string:"+ (a in b))
println("s !in string:"+ (a !in b))
输入结果:
s in string:true
s !in string:false
我们使用in来判断s是在string中结果返回的是 true, 在!in返回的就是false
索引运算符
通过索引我们可以取得或修改索引对应的值,索引是从0开始的
var b = "string"
println(b[2])
上面的代码我们去字符串string索引是2(也就是第三个字符)的字符,返回的是'r'