Kotlin编程语言入门2
Kotlin在for循环方面做了很大幅度的修改,Java中最常用的for-i循环在Kotlin中直接被舍弃,而Java中另一种for-each循环在Kotlin变成了for-in循环。val(value的简写)用来声明一个不可变的变量,这种变量在初始赋值之后就再也不能被重新复制,对应Java中的final变量。Kotlin中的if语句相比于Java有一个额外的功能,它是可以有返回值的!函数是用来运
三、Kotlin基本语法
1、变量
在Java中如果想要定义一个变量,需要在变量前面声明这个变量的类型,如int a表示a是一个整型变量,String b表示b是一个字符串变量,而Kotlin中定义一个变量,只允许在变量声明两种关键字:val和var
val(value的简写)用来声明一个不可变的变量,这种变量在初始赋值之后就再也不能被重新复制,对应Java中的final变量。
var(variable的简写)用来声明一个可变变量,这种变量在初始赋值之后仍然可以再被重新赋值,对应Java中的非final变量。
class koltin1 {
fun main(args: Array<String>) {
val a = 1
val b = 2
val c = 3
val d = 4
val e = 5
var ab = 6
var cd = 7
}
}
注意:1)Kotlin每一行代码的结尾是不用加分号的;2)Kotlin会自动推导类型
val a: Int = 10
#对一个变量延迟赋值的话,Kotlin就无法自动推导它的类型
#如显示声明变量a为Int类型,此时Kotlin就不会再尝试进行类型推导了,如果此时将一个字符串赋值给a,那么编译器就会报错。
Java基本数据类型 Kotlin对象数据类型 数据类型说明 int Int 整型 long Long 长整型 short Short 短整型 float Float 单精度浮点型 double Double 双精度浮点型 boolean Boolean 布尔型 char Char 字符型 byte Byte 字节型
什么时候使用val?什么时候使用var?
技巧:永远优先使用val来声明一个变量,而当val没有办法满足需求时再使用var,这样设计出来的程序就会更加强壮,也更加符合高质量的编码规范。
2、函数
函数是用来运行代码的载体,你可以在一个函数里编写很多行代码,当运行这个函数时,函数中的所有代码就会全部运行。
程序一旦运行,就是从main()函数开始执行的。
- fun是定义函数的关键字;
- 紧跟在fun后面的是函数名;
- 函数名后面紧跟着一对括号,里面可以声明该函数接受什么参数,参数的数量可以是任意多个,参数的声明格式是“参数名:参数类型”;
- 参数括号后面的那部分是可选的,用于声明该函数会返回什么类型的数据,上述示例就表示该函数会返回一个Int数据类型;
- 最后两个大括号之间的内容就是函数体了,可以在这里编写一个函数的具体逻辑。
fun lcs(a: String, b: String): Int {
val m = a.length
val n = b.length
val dp = Array(m + 1) { IntArray(n + 1) }
for (i in 1..m) {
for (j in 1..n) {
if (a[i - 1] == b[j - 1]) {
dp[i][j] = dp[i - 1][j - 1] + 1
} else {
dp[i][j] =Math.max( dp[i - 1][j], dp[i][j - 1])
}
}
}
return dp[m][n]
}
3、程序的逻辑控制
程序的执行语句主要分为3种:顺序语句、条件语句和循环语句
3.1 if条件语句
Kotlin中的条件语句主要有两种实现方式:if 和 when
Kotlin中的 if 语句和Java中的 if 语句几乎没有任何区别
fun lcs(a: String, b: String): Int {
val m = a.length
val n = b.length
if (m > n){
return lcs(b, a)
}else if (m == 0){
return 0
}else{
val c = Array(m + 1, {0})
}
return 0
}
注意:Kotlin中的if语句相比于Java有一个额外的功能,它是可以有返回值的!返回值就是if语句每一个条件中最后一行代码的返回值
fun lcs(a: Int, b: Int): Int {
if (a > b){
a
}else{
b
}
return 0
}
语法糖:当一个函数只有一行代码时,可以省略函数体部分,直接将这一行代码使用等号串连在函数定义的尾部
fun lcs(a: Int, b: Int) = if (a > b) {
a
}else{
b
}
}
3.2 when语句
Kotlin中的when语句有点类似于Java中的switch语句,但它又远比switch语句强大的多。
fun lcs(a : String) = if (a.equals("a")){
"a"
}else if (a.equals("b")){
"b"
} else {
"c"
}
when语句允许传入一个任意类型的参数,然后可以在when的结构体中定义一系列的条件,语法格式:
匹配值 -> { 执行逻辑 }
当执行逻辑只有一行代码时,{ }可以省略
fun lcs(a : String) = when (a){
"a" -> "a"
"b" -> "b"
else -> "c"
}
3.3 循环语句
Java中主要有两种循环语句:while循环和for循环,而Kotlin也提供了这两种,其中while和Java基本一致。
Kotlin在for循环方面做了很大幅度的修改,Java中最常用的for-i循环在Kotlin中直接被舍弃,而Java中另一种for-each循环在Kotlin变成了for-in循环
-
Kotlin代码表示一个区间:
-
val range = 0..10
-
上述代码表示创建了一个0到10的区间,并且两端都是闭区间
使用for-in循环来遍历这个区间
fun lcs(range: IntRange) {
for (i in range){
println(i)
}
}
Kotlin中可以使用until关键字来创建一个左开右闭的区间:
-
val range = 0 until 10
-
上述代码表示创建了一个0到10的左开右闭区间,它的数学表达式为【0,10).
fun main(){
for(i in 0 until 10 step 2)
}
for-in循环每次执行循环时会在区间范围内递增1,如果想要跳过一些元素,可以使用step关键字
上述代码表示在遍历【0,10)这个区间的时候,每次执行循环都会在区间范围内递增2
如果想要创建一个降序的区间,可以使用downTo关键字
fun main(){
for(i in 10 downTo 1){
println(i)
}
}
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/beiye_/article/details/130273891
更多推荐
所有评论(0)