(一)变量
val 和var
val声明不可变量;
var声明可变变量。
val a:Int=10
//如果在此处插 a *= 10,那么出现编译错误,val声明的变量无法被重新赋值
println("a="+a)
val range = 0..10
//val定义一个0-10的区间,即[0,10]
(二)函数
1.自定义函数
fun methodName(a:Int,b:Int):Int{
//methodName:函数名
//a、b:接收的参数
//第一、第二个“Int”:接收参数的类型
//最后一个Int:返回参数的类型
return min(a,b)
//返回a、b中最小的数
}
2.简化函数
函数只有一行代码时,不需要写函数体,{}可以省略
上面的函数可以简写成下面格式
fun methodName(a:Int,b:Int) : Int = max(a,b)
//上句函数中,由于Kotlin出色的推导能力,最后一个Int也可以省略。
//即上面的函数也可以简写成下述语句:
fun methodName(a:Int,b:Int) = max(a,b)
(三)三大逻辑语句
顺序语句
比较简单,忽略。
条件语句
if语句
Kotlin的if语句和java不同的一点在于kotlin的if语句使用每个条件的最后一行代码作为返回的关键值,并将值赋给了函数的返回值。
fun methodName(a:Int,b:Int)=if(a<b){
a
}else{
b
}
再简化:
fun methodName(a:Int,b:Int)=if(a<b) a else b
when语句
分为精准匹配和类型匹配。
精准匹配:
//函数获取"A""B""C""D"的值,返回对应的排名
//1.when传参
fun getRank(name:String) = when (name) {
"A"->1
"B"->2
"C"->3
"D"->4
else->0
}
//2.when不传参
fun getRank(name:String) = when {
name.startsWith("A")->1
//所有“A”开头的名字都是排名第一
name=="B"->2
name=="C"->3
name=="D"->4
else->0
}
类型匹配:
fun checkNum(num:Number){
when(num){
is Int -> println("输入数字的类型是int")
//is相当于java的instanceof
is Double -> println("输入数字的类型是double")
else->println("输入数字不支持识别")
}
}
循环语句
while语句
和java 中的while 一样
for语句(for-in)
val range = 0..10 //[0,10]双端闭
val range = 0 until 10 //[0,10)左闭右开
for(i in 0..10){
print(i)
}
运行结果:
for(i in 0 until 10){
print(i)
}
运行结果:
java中的 i++效果可用 step来展示
for(i in 0 until 10 step 2) print(i)
运行结果:
降序区间可以用 downTo关键字:
for(i in 10 downTo 1) print(i)
运行结果: