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

Kotlin编程相关知识点介绍


If语句


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

package com.xingen.kotlin.day2017529.pm

fun 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
    }
}

输出结果:

1
i的值小于0

可知:

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

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

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

when语句


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

package com.xingen.kotlin.day2017529.pm

fun 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.pm

fun 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.pm

fun 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的值:2
do while语句每次输出index的值:1
while语句每次输出index的值:0
while语句每次输出index的值:1
while语句每次输出index的值:2
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值