Kotlin学习笔记(2)---程序的逻辑控制

Kotlin学习笔记(2)—程序的逻辑控制

接上节:

在进行一些业务逻辑的处理或者实现一些算法的时候,避免不了地需要使用诸如选择判断,循环控制之类的逻辑。

1.条件语句

在Kotlin中,条件语句主要有两种实现方式:if和when

1.1 if语句:

在Kotlin中,if语句和Java中任何很小,在Kotlin中,if语句是可以有返回值的,这个返回值就是每个if条件的最后一行代码。还是之前的那个例子,比较两个数中比较小的那个数,在Kotlin中,我们可以这样写:

fun getMin(num1:Int,num2: Int):Int{
    var value = 0
    if (num1<num2){
        value = num1
    }else{
        value = num2
    }
    return value
}

这里if语句的用法与java中完全一致。然而我们上边提到了在Kotlin中,if语句是有返回值的,返回值就是if语句的最有一行。所以我们就可以将上方的getMin()方法修改成这样:

fun getMin(num1:Int,num2: Int):Int{
    return if (num1<num2){
         num1
    }else{
         num2
    }
}

直接返回一个if语句的返回值即可。到这里你是不是觉得已经精简了很多?用点子智慧嘛
想想我们之前提到的语法糖,是不是有灵感了,哈哈哈

Kotlin学习笔记(2)---程序的逻辑控制_第1张图片

fun getMin(num1:Int,num2: Int)=if (num1<num2){
         num1
    }else{
         num2
    }

然后简化一下就成了这样:

fun getMin(num1:Int,num2: Int)=if (num1<num2) num1 else num2

我的老天鹅,这简直是天壤之别。

1.2 when语句

when对标的其实是Java中的switch,我们用一个简单的例子看看,用if语句实现:

fun getColor(name:String) = if(name == "banana"){
    "yellow"
} else if (name == "apple"){
    "red"
}else if(name == "peach"){
    "pink"
}else{
    "null"
}

如果用java的switch语句来写的话,就需要分很多的case,然后每个case结束之后还需要添加break来进行case的结束,否则将会继续进行判断。
而在Kotlin中,我们就可以这样写:

fun getColor(name:String) = when(name){
    "banana"->"yellow"
    "apple"->"red"
    "peach"->"pink"
    else->"black"
}

是不是简单明了?
还有一种when中不加参数的写法:

fun getColor(name:String) = when{
    name == "banana"->"yellow"
    name == "apple"->"red"
    name == "peach"->"pink"
    else->"black"
}

在Kotlin中,“==” 代表了判断内容相等 ,“ ===”号代表了判断内存地址相等
这样的话,可能有些人会觉得没有必要。但是如果有这样一个场景,所有b开头的东西,我们都想让他变成黄色,那么就可以这样写:

fun getColor(name:String) = when{
    name.startsWith("b") ->"yellow"
    name == "apple"->"red"
    name == "peach"->"pink"
    else->"black"
}

2 .循环语句

在Java中,有两种循环语句:for循环和while循环。而在Kotlin中,也提供了for循环和while循环,其中while循环在语法上与java中的while循环是一样的,这里就不做赘述。我们一起看看for循环。

2.1 for循环

java中的for循环有for-i循环和for-each循环。在Kotlin中,舍弃了for-i循环,而大大加强了for-each循环,形成了Kotlin独有的for-in循环。
首先我们知道,对于一个循环来说最重要的就是循环区间。而在Kotlin中,区间有一种特殊的表示方法:

0..10

这句话代表了从0到10的闭区间,即[0,10],知道区间的写法之后,就可以来写我们的for-in循环了,我们试着输出一下从0到10所有的数:

 for (i in 0..10){
        println(i)
    }

在日常情况下,我们用到最多的是左闭右开区间,例如一个长度为10的数组的下标范围是0-9.即[0,9)。在Kotlin中,可以用until关键字来标识一个左闭右开的区间。那么如果我们想要输出0-9的话,就可以写成:

  for (i in 0 until 10){
        println(i)
    }

然后有时候,我们会通过操作i来控制循环,在上面的两个例子中,i都是一直在累加的,而我们有时候需要将i进行i=i+2,i=i+3等运算,那我们就可以这样写:

    for (i in 0 until 10 step 3){
        println(i)
    }

如果我们要用到一个降序区间的话,可以这样写:

   for (i in 10 downTo  0 step 3){
        println(i)
    }

程序的逻辑控制就聊到这里,下篇文章我们聊聊Kotlin中的面向对象编程

你可能感兴趣的:(Kotlin学习)