分享下学习Kotlin的历程-开始写逻辑吧 if/for/while/when

转载请注明出处:王亟亟的大牛之路

开篇之前还是老规矩,先安利https://github.com/ddwhan0123/Useful-Open-Source-Android 还是尽量每天做更新和维护

上一篇讲了Kotlin的结构,这一把常用的逻辑姿势给写了,就可以干项目了!!


if 表达式

在Kotlin里条件表达式是可以有返回值的,而在java中要达到类似效果的话就要使用三元表达式,像这样a ? yes : no

简单的条件判断

这里写图片描述

带else的姿势

这里写图片描述


when 表达式

感觉是传统的switch…case的进化版又兼容了部分if…else if…else的姿势

写个简单的判断逻辑大家看下一目了然

在主类的点击事件里传一个字符串

 person.testWhen(People(edit_text.text.toString().trim()))

被调用的地方

   fun testWhen(people: People) {
        when (people.name) {
            "" -> println("name是空的")
            "wjj" -> println("name 是 wjj")
            else -> {
                println("名字是 " + people.name)
            }
        }
    }

这里写图片描述

它可以内部调用方法,可以是一个代码区块,也可以啥都不错,甚至是类似东西能统一判断,像这样

    fun testWhen(people: People) {
        when (people.name) {
            "", "10086" -> println("name是空的或者10086")
            "wjj" -> println("name 是 wjj")
            else -> {
                println("名字是 " + people.name)
            }
        }
    }

结果:

I/System.out: name是空的或者10086

刚才有提到,他有代替if..else if…else的姿势,那就是不传参的方法,像这样

 val a = 8
 when  {
   a > 0 -> println("a > 0")
   a < 5 -> println("a < 10")
   else -> println("其他")
   }

结果:
I/System.out: a > 0


for 循环语句

Kotlin里循环相对来说没有java复杂,不需要++啥的用in关键字,像这样

 var list = arrayOf(1, 2, 3)
 for (i in list.indices)
     println("下标 " + i + " 内容 " + list[i])

 for ((index, value) in list.withIndex()) {
     println("下标是 $index 内容是 $value")
     }

结果:

I/System.out: 下标 0 内容 1
I/System.out: 下标 1 内容 2
I/System.out: 下标 2 内容 3
I/System.out: 下标是 0 内容是 1
I/System.out: 下标是 1 内容是 2
I/System.out: 下标是 2 内容是 3

while循环

while 和 do…while 和其它语言没什么区别

while (x > 0) {
    x--
}

do {
    val y = retrieveData()
} while (y != null) // y 在这是可见的

源码地址:https://github.com/ddwhan0123/KotlinAndroidDemo

猜你喜欢

转载自blog.csdn.net/ddwhan0123/article/details/77860047