美文网首页Kotlin开发之旅
Kotlin 控制语句 if when for while

Kotlin 控制语句 if when for while

作者: 奔跑吧技术人 | 来源:发表于2019-01-28 23:24 被阅读8次

    前言

    • 你还在把Java当成Android官方开发语言吗?Kotlin了解一下!
    • 2017年Google IO大会宣布使用Kotlin作为Android的官方开发语言,相比较与典型的面相对象的JAVA语言,Kotlin作为一种新式的函数式编程语言,也有人称之为Android平台的Swift语言。

    环境以及工具

    Android Studio 3.3

    if 表达式

        //----------------------- if 表达式-------------------------------------
        //传统用法
        val a: Int = 1
        val b: Int = 2
        val max: Int
        val min: Int
        if (a < b) {
            max = b
        } else {
            max = a
        }
        println(max)//输出结果-------------------------2-------------------------
    
        // 作为表达式
        min = if (a < b) a else b
        println(min)//输出结果-------------------------1-------------------------
    
        //IF 表达式的结果赋值给一个变量,这里不需要三元操作符也可以
        val max2 = if (a > b) {
            println("Choose a:")
            a
        } else {
            println("Choose b:")
            b
        }
        println(max2)
    
    //    *********************************输出结果*********************************
    //    Choose b:
    //    2
    //    *********************************输出结果*********************************
    
        //使用 in 运算符来检测某个数字是否在指定区间内
        val x = 5
        if (x in 1..8) {
            println("x 在区间内")//输出结果-------------------------x 在区间内-------------------------
        }
    
    

    When 表达式

    //----------------------- When 表达式-------------------------------------
        //when 取代了类 C 语言的 switch 操作符
        //else 类似 switch 的 default。如果其他分支都不满足条件将会求值 else 分支
        val y = 5
    
        when (y) {
            1 -> println("x==1")
            2 -> println("x==2")
            else -> {
                println("x 不是1 也不是5")
            }
        }
    //    *********************************输出结果*********************************
    //    x 不是1 也不是5
    //    *********************************输出结果*********************************
    
        //如果很多分支需要用相同的方式处理,则可以把多个分支条件放在一起,用逗号分隔
        val z = 5
        when (z) {
            1, 5 -> println("x==1 or x==5")
            else -> println("x 不是1 也不是5")
        }
    
    //    *********************************输出结果*********************************
    //    x==1 or x==5
    //    *********************************输出结果*********************************
    
        //我们也可以检测一个值在(in)或者不在(!in)一个区间或者集合中:
        val h = 0
        var validArrays = arrayOf(1, 2, 3, 0, 6)
        when (h) {
            in 1..5 -> println("x在1-5之间")
            in validArrays -> println("x是合法数字")
            !in 10..20 -> println("x不在10-20之间")
            else -> println("x到底属于什么范围")
        }//输出 x是合法数字
    
        //is检测特定类型
        fun hasString(x: Any) = when (x) {
            is String -> true
            else -> false
        }
        println(hasString("boyi.chen"))//true
        println(hasString(12306))//false
    
        //when 也可以用来取代 if-else if链
        val d = 10
        when {
            d in 1..10 -> println("d在区间1-10之间")
            else -> println("else")
        }//d在区间1-10之间
    

    For 循环

        //-----------------------For 循环-------------------------------------
        val arrays = listOf("a", "b", "c", "d", "e")
        //对任何提供迭代器(iterator)的对象进行遍历
        for (i in arrays) {
            print("$i,")
        }//a,b,c,d,e,
        println()
    
    
        //通过索引遍历一个数组或者一个 list
        for (i in arrays.indices) {
            print(arrays[i] + ",")
        }//a,b,c,d,e,
        println()
    
    
        //可以用库函数 withIndex
        for ((index, value) in arrays.withIndex()) {
            println("$index : $value")
        }
    //    *********************************输出结果*********************************
    //    0 : a
    //    1 : b
    //    2 : c
    //    3 : d
    //    4 : e
    //    *********************************输出结果*********************************
    

    while循环

      //-----------------------while循环-------------------------------------
        var xx = 2
        while (xx > 0) {
            print("${xx--},")
        }//2,1,
        println()
    
    
        var yy = 2
        do {
            print("${yy--},")
        } while (yy > 0)//2,1,
        println()
    

    源码

    请关注公众号并在后台回复:kotlin

    Kotlin重构系列分享教程

    Kotlin环境搭建
    Kotlin重构初体验之告别FindViewById
    Kotlin基本类型
    Kotlin重构如何兼容原先的ButterKnife、EventBus3.1
    当ButterKnife8.8.1碰到AndroidX怎么办
    Githup教程开源项目

    Python爬虫系列分享教程

    Python爬虫之旅之Selenium库的使用
    Python爬虫之旅之豆瓣音乐

    请关注我(分享日常开发)

    相关文章

      网友评论

        本文标题:Kotlin 控制语句 if when for while

        本文链接:https://www.haomeiwen.com/subject/dgsajqtx.html