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

来源:互联网 发布:豆瓣fm for mac打不开 编辑:程序博客网 时间:2024/06/05 15:51

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

开篇之前还是老规矩,先安利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 内容 1I/System.out: 下标 1 内容 2I/System.out: 下标 2 内容 3I/System.out: 下标是 0 内容是 1I/System.out: 下标是 1 内容是 2I/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

阅读全文
1 0
原创粉丝点击