Kotlin控制流、返回与跳转

本节主要学习了条件表达式if、while、when、for以及break、continue、return的使用,其中when有多种用法,可以对照java中switch使用

里面的注释很详细,详见代码

package net.edaibu.kotlintest

/**
 * Created by ${GEQIPENG} on 2017/5/22.
 * 流程控制
 */
fun main(args: Array<String>) {

    println("if表达式——————————————————————————————————————————————————————")

    //if表达式使用

    val a = 1
    val b = 2
    if (a > b) {
        println("max is $a")
    } else {
        println("max is $b")
    }

    //简化版
    if (a > b) println(a) else println(b)

    //第三种写法
    val max = if (a > b) {
        a
    } else {
        b
    }
    println("max is $max")
    println("when表达式——————————————————————————————————————————————————————")

    //写法一
    fun getXValue(x: Int): String =
            when (x) {
                1 -> "北京"
                2 -> "上海"
                3 -> "广州"
                else -> {
                    "x is unKnown"

                }
            }
    println(getXValue(1))
    println(getXValue(5))

    //写法二
    fun getXValue2(x: Int): String =
            when (x) {
                1, 2, 3 -> "北京"
                4, 5, 6 -> "上海"
                7, 8, 9 -> "广州"
                else -> {
                    "x is unKnown"

                }
            }
    println(getXValue2(1))
    println(getXValue2(5))
    println(getXValue2(100))

    //写法三 通过in进行范围判断   1..5即x>=1&&x<=5

    fun getXValue3(x: Int): String =
            when (x) {
                in 1..5 -> "在1到5之间"
                in 6..10 -> "在6到10之间"
                else -> {
                    "out of boundary"
                }
            }
    println(getXValue3(5))
    println(getXValue3(11))

    //写法四  看lsit2惊讶的发现 list2中数据类型可以包含多种,但是输出的时候会区分数据的类型
    println("写法四——————————————————————————————————————————")
    val list1 = listOf(1, 2, 3, 4, 5)
    val list2 = listOf("6", "7", 8, 9, 10)
    fun getXValue4(x: Int): String =
            when {
                x in list1 -> "in list1"
                x in list2 -> "in list2"
                else -> {
                    "not in list1 or list2 "
                }
            }
    println(getXValue4(5))// 输出 in list1
    println(getXValue4(6))//输出 not in list1 or list2

    println("for循环表达式——————————————————————————————————————————————————————")
    //for循环写法一:直接遍历
    val ItCompanies = listOf("Baidu", "Alibaba", "Tencent", "Sina")
    for (company in ItCompanies) {
        println(company)
    }
    println("for循环二____________________________")
    //for循环写法二,通过索引
    for (i in ItCompanies.indices) {
        println(ItCompanies[i])
    }

    println("while表达式使用————————————————————————————————————————————")

    //注意遍历的时候index要进行动态变化,所以要定义为变量var符号表示
    var index = 0

    while (index < ItCompanies.size) {
        println(ItCompanies[index])
        index++
    }

    println("do..while 表达式用法______________________")
    //注意do..while只执行一次
    var doIndex = 0
    do {
        println(ItCompanies[doIndex])
        doIndex++
        break
    } while (doIndex < ItCompanies.size)



    println("返回与跳转的使用————————————————————————————————————————————————————————")
    //返回与跳转使用

    val valueList = listOf("Huawei", "Meizu", "Xiaomi", "Iphone")
    //此处引用了一个新的符号loop@ 表示循环的意思

    //break使用
    loop@ for (i in 1..10) {
        if (i == 5) {
            break
        }
        println(i)//输出1,2,3,4
    }

    //continue使用
    println("continue使用————————————————————————————————")
    loop@ for (j in 1..8) {
        if (j % 2 == 0) {
            continue
        }
        println(j) //输出1,3,5,7
    }

    println("return使用————————————————————————————————————————")

    loop@ for (item in valueList) {
        if (item in valueList) {
            println("item in valueList")
            return
        }
    }


}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值