Kotlin——最详细的控制语句使用

  • 时间:2017-11-08
  • 分类:Android开发
  • 1195 人浏览
[导读]不了解请参见前面的内容:Kotlin从无到有系列之数据类型介绍。Kotlin从无到有系列之变量、常量、注释的使用。

在前面 的章节中讲解了Kotlin语言中的数据类型、变量与常量的定义。不了解请参见前面的内容:

    下面详细为大家讲解Kotlin中的控制语句使用。不得不说其和Java中还是有很多不一样的地方。

    目录

    一、if语句

    Kotlin中的if语句和Java还是还是有一定的区别的,它能在Java中更灵活,除了能实现Java写法外,还可以实现表达式(实现三元运算符),及作为一个块的运用。

    1、传统写法(同Java写法一样)

    例:

    输出结果为:

    2、Kotlin中的三元运算符

    在Kotlin中其实是不存在三元运算符( condition ? then : else )这种操作的。 那是因为if语句的特性(if表达式会返回一个值)故而不需要三元运算符。

    例:

    输出结果为:

    由上可以看出,Kotlin中的if可以作为一个表达式并返回一个值。

    3、作为一个块结构,并且最后一句表达式为块的值

    例:

    输出结果为:

    二、for语句

    Kotlin废除了Java中的for(初始值;条件;增减步长)这个规则。但是kotlin中对于for循环语句新增了其他的规则,来满足刚提到的规则。 for循环提供迭代器用来遍历任何东西 for循环数组被编译为一个基于索引的循环,它不会创建一个迭代器对象

    1、新增的规则,去满足for(初始值;条件;增减步长)这个规则

    1.1、递增

    关键字:until
    范围:until[n,m) => 即大于等于n,小于m

    例:

    输出结果为

    1.2、递减

    关键字:downTo 范围:downTo[n,m] => 即小于等于n,大于等于m ,n > m

    例:

    输出结果为:

    1.3、符号(' .. ') 表示递增的循环的另外一种操作

    使用符号( '..'). 范围:..[n,m] => 即大于等于n,小于等于m。 和until的区别,一是简便性。二是范围的不同。

    例:

    输出结果为:

    1.4、设置步长

    关键字:step

    例:

    输出结果为:

    2、迭代

    for循环提供一个迭代器用来遍历任何东西。for循环数组被编译为一个基于索引的循环,它不会创建一个迭代器对象

    2.1、遍历字符串

    此用法在数据类型章节中的字符串类型中用到过。还不甚清楚的可以查看Kotlin从无到有系列之数据类型介绍

    例:

    输出结果为:

    2.2、遍历数组

    此用法在数据类型章节中的数组类型中用到过。还不甚清楚的可以查看Kotlin从无到有系列之数据类型介绍

    例:

    输出结果为:

    2.3、使用数组的indices属性遍历

    例:

    输出结果为:

    2.4、使用数组的withIndex()方法遍历

    例:

    输出结果为:

    2.5、使用列表或数组的扩展函数遍历

    数组或列表有一个成员或扩展函数iterator()实现了Iterator 其一般和while循环一起使用

      下面看看Array.kt这个类。可以看见其中的iterator()函数,而这个函数实现了Iterator接口

      查看Iterator.kt这个接口类,这个接口提供了hasNext()函数和next()函数。

    例:

    输出结果为:

    终上所述就是for循环语句常用的用法。

    三、when语句

    Kotlin中已经废除掉了Java中的switch语句。而新增了when(exp){}语句。when语句不仅可以替代掉switch语句,而且比switch语句更加强大

    3.1、when语句实现switch语句功能

    例:

    输出结果为:

    3.2、和逗号结合使用,相当于switch语句中的不使用break跳转语句

    例:

    输出结果为:

    3.3、条件可以使用任意表达式,不仅局限于常量

    相当于if表达式的用法。

    例:

    输出结果为:

    3.4、 检查值是否存在于集合或数组中

    操作符:
      (in)(!in)
    限定:只适用于数值类型

    例:

    输出结果为:

    其中,符号( .. )表示的意思。如例子中的0 .. 10就表示0至10或者0到10

    3.5、检查值是否为指定类型的值

    操作符
      (is)(!is)
    值得注意的是,Kotlin的智能转换可以访问类型的方法和属性

    例:

    输出结果为:

    3.6、不使用表达式的when语句

    表示为最简单的布尔表达式

    例:

    输出结果为:

    综上所述,为Kotlinwhen控制语句的常见用法。可以看出它的强大。以及便利性。不仅可以替代掉Java语句中的swicth语句。甚至可以替换掉if语句。

    四、while语句

    其同Java中的while循环一样。在此不做累述。

    定义格式:

    while(exp){ 其中exp为表达式
    ...
    }

    例:

    输出结果为:

    五、do...while语句

    其同Java中的do...while循环一样。在此不做累述。

    定义格式:

    do(exp){ // 其中exp为表达式
    ...
    }(while)

    例:

    输出结果为:

    PS: do{...}while(exp)与while(exp){...}最大的区别是do{...}while(exp)最少执行一次,这点也是和Java相同的

    例:

    输出结果为:

    六、跳转语句(return、break、continue)

    其同Java中的跳转语句一样。在此不做累述。

    1、return语句

    默认情况下,从最近的封闭函数或匿名函数返回。

    例:

    输出结果为:

    2、break语句

    作用:终止最近的闭合循环。

    例:

    输出结果为:

    3、continue语句

    前进到最近的封闭循环的下一个步骤(迭代)。

    例:

    输出结果为:

    七、总结

    不管对于任何一门编程语言,都有其数据类型,而数据类型是学习一门编程语言的基础。所以请各位大佬认真并且跟着代码敲一遍。特别是数组和字符串类型这两个点。
    源代码:https://github.com/Jetictors/KotlinLeran/blob/master/src/com/kotlin/leran/basis/ControlStatementDemo.kt

    来源:本文为线上采编,如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除!
    标签: Kotlin 控制语句