Kotlin编程之if语句,while循环,when表达式,for循环

来源:互联网 发布:华西电子盘软件下载 编辑:程序博客网 时间:2024/05/19 18:15

Kotlin编程相关知识点介绍

  • Kotlin编程之使用Intellij IED和了解源文件(.kt)
  • Kotlin编程之类的介绍和使用
  • Kotlin编程之类的属性
  • Kotlin编程之方法
  • Kotlin编程之父类和继承父类
  • Kotlin编程之接口和实现接口
  • Kotlin编程之伴生对象,抽象类,密封类
  • Kotlin编程之嵌套类,内部类,匿名内部类
  • Kotlin编程之对象的表达式和声明
  • Kotlin编程之扩展方法
  • Kotlin编程之扩展属性和扩展伴生对象
  • Kotlin编程之泛型

If语句


在Kotlin编程中,没有Java中三元运算符(condition ? then : else),但是通过if语句一样可以实现相同的效果。

package com.xingen.kotlin.day2017529.pmfun main(args: Array<String>) {    println(test1(1))    test2(-1)}/** *  if 语句作来实现Java 中三元运算符(condition ? then : else)的效果, *  但是必须要有else分支。 * *  Kotlin编程中没有三元运算符。 */fun test1(i: Int): Int {    var v = if (i > 0) i else 0 //可以理解为if(i>0) { i}  else { 0 },if 语句中单个表达式时候,大括号可以省略。    return v}/** * if表达式作为块,可以包含其他表达式,但最后一个表达式是该块的值。 */fun test2(i: Int) {    var v = if (i > 0) {        println("i的值大于0")        i    } else if (i==0) {        println("i的值等于0")        0    }else{        println("i的值小于0")        i    }}

输出结果:

1i的值小于0

可知:

  • if可以作为语句也可以作为表达式。当 if不作为语句,而是表达式,将返回值赋值给变量,则必须要else分支。

  • if表达式可以实现三元运算符效果,具备返回值,然后赋值给变量。

  • if表达式作为块,可以包含其他表达式,但最后一个表达式是该块的值。

when语句


在Kotlin编程中,可以使用when语句实现Java中switch语句,和if else if 语句的效果。

package com.xingen.kotlin.day2017529.pmfun main(args: Array<String>) {    test3(4)}/** *  when表达式有参数:实现switch()语句效果 *  when表达式无参数: 实现if -else if-else语句效果 */fun test3(obj: Any): String {    var  v=when(obj){        1->"1"  //是否等于1        in 2..3->"2到3区间内"  //是否在2到3的范围内        is String->"字符串类型"  //是否是String类型数据        else->{            println("默认情况,默认返回0")            "0"        }    }    return  v}

输出结果:

默认情况,默认返回0

可知:

  • when会对所有的分支进行检查直到有一个条件满足。when 可以用做表达式或声明。如果用作表达式的话,那么满足条件的分支就是总表达式。如果用做声明,那么分支的值会被忽略。(像 if 表达式一样,每个分支是一个语句块,而且它的值就是最后一个表达式的值)

  • when表达式有参数:实现switch()语句效果

  • when表达式无参数: 实现if -else if-else语句效果

注意点: when语句与密封类可以一起使用,而不需要写else分支。

for循环语句


package com.xingen.kotlin.day2017529.pmfun main(args: Array<String>) {       test4(listOf("1","2","3"))}/** *  for 循环 */fun test4(list: List<String>){      //for()中的条件等同于 i in list.indices,采取判断角标是否在某个数值区间内。   for (i in 0..list.lastIndex){         println("集合中$i 角标的数据是:"+list[i])   }    //类似java中增强for循环    for (item in list){        println("每次遍历的数据是:"+item)    }    //迭代器中的索引和对应值    for ((index,values) in list.withIndex()){        println("使用withIndex方式:集合中$index 角标的数据是:$values")    }}

输出结果:

集合中0 角标的数据是:1集合中1 角标的数据是:2集合中2 角标的数据是:3每次遍历的数据是:1每次遍历的数据是:2每次遍历的数据是:3使用withIndex方式:集合中0 角标的数据是:1使用withIndex方式:集合中1 角标的数据是:2使用withIndex方式:集合中2 角标的数据是:3

可知:

for循环遍历输出有多种方式:

  • 索引值在某个范围的变量,通过索引获取值
  • 遍历值,类似java中增强for循环
  • 迭代器方式,获取索引和值

while和do..while


在Kotlin编程中,do..while语句和while语句和Java编程中类似。

package com.xingen.kotlin.day2017529.pmfun main(args: Array<String>) {    test5(2)}/** *  while语句和do...while语句 */fun  test5(i: Int){    var index=i    //再利用do...while循环输出到0    do {        println("do while语句每次输出index的值:$index")        index --//自减    }while (index>0)    //先利用while恢复到原本值    while (index<=i){        println("while语句每次输出index的值:$index")        index++//自增    }}

输出结果:

do while语句每次输出index的值:2do while语句每次输出index的值:1while语句每次输出index的值:0while语句每次输出index的值:1while语句每次输出index的值:2
原创粉丝点击