文章目录
- if
- when
- for循环
if
Kotlin 中 if 语句相比于 Java 有一个额外功能,它是可以有返回值的,返回值就是 if 语句每一个条件中最后一行代码的返回值。例如下面函数的作用是返回较大的一个数
fun largeNumber(num1:Int,num2:Int):Int {
    return if(num1>num2){
        num1
    }else{
        num2
    }
}可以简化成
fun largeNumber(num1: Int, num2: Int) = if (num1 > num2) {
    num1
} else {
    num2
}
或
fun largeNumber(num1: Int, num2: Int) = if (num1 > num2) num1 else num2when
fun main(args: Array<String>) {
    gradeStudent(3)
}
fun gradeStudent(score:Int){
    when(score){
        10 -> println("满分,棒棒哒")
        9 -> println("干的不错")
        8 -> println("还可以")
        7 -> println("还需努力")
        6 -> println("刚好及格")
        else -> println("还需要加油鸭")
    }
}
when语句除了精确匹配之外还支持类型匹配
fun main() {
    checkNumber(5L)
}
fun checkNumber(num:Number){
    when(num){
        is Int -> println("number is Int")
        is Double -> println("number is Double")
        else -> println("number not support")
    }
}is就是类型匹配的核心,相当于 Java 中的instanceof
when 语句中还有一种不带参数的用法
带参数写法我们可以获得 Tom 分数是66
fun getScore(name: String) = when (name) {
    "Tom" -> 66
    "Jim" -> 77
    else -> 0
}如果有 Tom 和 Tommy ,不带参数的写法
fun getScore(name: String) = when {
    name.startsWith("Tom") -> 66
    name == "Jim" -> 77
    else -> 0
}for循环
//声明了一个数组,内容是从1-10
    var nums = 1 .. 10
    for(num in nums){
        println("${num},")
    }
 我们来算一下1-100的和
//声明了一个数组,内容是从1-100
    var nums = 1 .. 100
    var result = 0
    for(num in nums){
        result = result + num
    }
    println("结果是"+result)

 所以我们上面的1-100是闭区间[1,100]
 现在定义一个开区间
//[1,10)
    var nums = 1 until 10
    for(num in nums){
        println(num)
    }
var nums = 1 .. 16
    for(num in nums step 2){
        println(num)
    }
 倒序
var nums = 1 .. 16
    var nums2 = nums.reversed()
    for(s in nums2){
        println(s)
    }
还可以打印数字个数
println("总数为:"+nums.count())
.. 和 until 关键字都要求区间左端必须小于等于区间的右端,如果想创建一个降序的区间可以使用 downTo 关键字
for(i in 10 downTo 1){
        println(i)
    }
 我们创建了一个[10,1]的闭区间










