【Kotlin 初学者】程序的逻辑控制

简介: 程序的逻辑控制程序的执行语句主要分为三种:顺序语句:一条接着一条顺序执行下去,程序代码默认就是顺序语句。条件语句:if 和 when循环语句:for循环 和 while循环

作者简介:CSDN博客专家、华为云享专家认证

系列专栏:Kotlin 初学者

学习交流:三人行必有我师焉;择其善者而从之,其不善者而改之。


程序的逻辑控制


程序的执行语句主要分为三种:


  • 顺序语句:一条接着一条顺序执行下去,程序代码默认就是顺序语句。


  • 条件语句:if 和 when


  • 循环语句:for循环 和 while循环


条件语句


       Kotlin 中的条件语句主要有两种实现方式:if 和 when。


if


       Kotlin 编程语言流程控制语句通过程序设定一个或多个条件语句来设定:


  • 在条件为 true 时执行指定程序代码


  • 在条件为 false 时执行其他指定代码


实践


fun main() {
    val number = 83
    val str = if (0 < number && number <= 59) {
        //0-59范围
        "$number 不及格"
    } else if (59 < number && number <= 75) {
        "$number 及格"
    } else if (75 < number && number <= 85) {
        "$number 良好"
    } else {
        "$number 优秀"
    }
    println(str)
}


微信图片_20220524165757.png


 从上面可以看出,Kotlin 中的 if 语句跟 Java中的 if 语句相差不大。


Kotlin if 额外功能:


       if 有个返回值,返回值就是语句每一个条件中最后一行代码的返回值。如上面例子:val str = "良好"


if..in


微信图片_20220524165837.png


警告:两次比较应转换为 range 检查


range 表达式


       in x..y,in关键字用来检查某个值是否在指定区间x-y(包含y)之内


实践


1.    //if..in
    //in x..y,in关键字用来检查某个值是否在指定区间x-y(包含y)之内。
    val strRange = if (number in 1..59) {
        //0-59范围
        "$number 不及格"
    } else if (number in 60..75) {
        "$number 及格"
    } else if (number in 76..85) {
        "$number 良好"
    } else {
        "$number 优秀"
    }
    println(strRange)


运行结果跟上面一致,但是代码感觉简洁了很多。


微信图片_20220524165947.png


if..!in


       !in x..y,in关键字用来检查某个值是否不在指定区间x-y(包含y)之内。


    val number2 = 81
    //这个就是取反了。
    //!in x..y,in关键字用来检查某个值是否不在指定区间x-y(包含y)之内。
    if (number2 !in 70..80){
        println("$number2,不在70-80范围")
    }else{
        println("$number2,在范围")
    }


微信图片_20220524170029.png


when


  • 允许你编写条件式,在某个条件满足时,执行对应的代码
  • 只要代码包含else if分支,都建议改用when

根据上面的实例,对else if分支调整。


实践


fun main() {
    val number = 70
    val s = when(number){
        in 0..59->"不及格"
        in 60..75->"及格"
        in 76..85->"良好"
        else -> "优秀"
    }
    println(s)
}


微信图片_20220524170111.png


这个就类似Java中的switch-case。但是switch-case那么繁琐,也不需要加break。


循环语句


Java中主要有两种循环语句:for 循环和 while 循环


Koltin也提供了这两种循环。


  • while循环不管在语法还是在使用技巧上都和Java基本一致。


  • for循环改动比较大


  • for-i在Kotlin中被移除。


  • for-each循环被加强,变成for-in循环。


for-in循环


实践


    //for-in简单循环,区间范围[3,8]
    for (number in 3..8){
        println(number)
    }


微信图片_20220524170325.png


until 关键字


       使用 until关键字 创建一个左闭右开的区间。


实践


    //使用until关键字创建一个左闭右开的区间。
    //区间范围[3,8)
    for (number in 3 until 8){
        println(number)
    }


微信图片_20220524170405.png


step 关键字


       使用 step 关键字跳过一些元素。for-in循环每次执行循环时会在区间范围递增1,如Java中 for-i 的i++。


实践


    //使用 step 关键字跳过一些元素。
    //如Java中 for-i 的i = i+2。
    for (number in 3 until 8 step 2) {
        println(number)
    }
    println("-------")
    //使用 step 关键字跳过一些元素。
    //如Java中 for-i 的i = i+3。
    for (number in 3 until 8 step 3) {
        println(number)
    }


微信图片_20220524170448.png


downTo 关键字


       使用 downTo 关键字创建一个降序区间。


    //使用 downTo 关键字创建一个降序区间。
    //区间范围[8,3]
    for (number in 8 downTo 3) {
        println(number)
    }


微信图片_20220524170522.png


foi-in 循环集合


       有关集合的创建咱们后面一起学哈。


    //for-in集合
    val items = listOf("字节", "腾讯", "阿里巴巴", "百度")
    for (item in items) {
        println(item)
    }
    println("-------")
    for (index in items.indices) {
        println("item at $index is ${items[index]}")
    }


微信图片_20220524171551.png


while循环


while简单循环


实践

    //while循环
    var num = 1
    while (num<5){
        println("$num,while循环")
        num++
    }


微信图片_20220524171630.png


do...while循环


       do…while 循环 对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。


       do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。


实践


    //do..while循环
    var num = 5
    do {
        println("$num,do..while循环")
        num--
    } while (num > 0)


微信图片_20220524171726.png


Kotlin 控制语句


  • return : 默认从最直接包围它的函数或者匿名函数返回


  • break : 终止使用它的循环


  • continue : 继续下一次使用它的循环


return 语句


       默认从最直接使用它的函数或者匿名函数返回。这个跟Java类似。


实践


fun main() {
    //return
    println(userInfo("ShuaiCi",18))
}
fun userInfo(name:String,age:Int):String{
    //具名函数这里要加return
    return "$name-今年:$age"
}


微信图片_20220524171904.png


break 语句


       终止使用它的循环


实践


    //break
    for (number in 3..8) {
        if (number > 6) break//number>6跳出循环
        println(number)
    }


微信图片_20220524171951.png


continue 语句


       继续下一次使用它的循环


实践


    for (number in 3..8) {
        println("$number,start")
        if (number ==4 ) continue//跳过本次循环,直接执行下一次循环
        if (number > 6) break//number>6跳出循环
        println("$number,end")
    }

微信图片_20220524172030.png


小结


       优先使用for..in,简单好用,足够覆盖大部分场景。

       如果特殊场景无法实现,那么就使用while循环进行补充即可。

       看完了上手练练,光看短时间能记住,时间长不用就忘记了,还要再看一遍,还不如自己上手练一下。


相关文章
|
Java Android开发 Kotlin
【错误记录】记录 Android 命令行执行 Java 程序中出现的错误 ( dx 打包 PC 可执行文件报错 | dalvik 命令执行 kotlin 编译的 dex 文件报错 )
【错误记录】记录 Android 命令行执行 Java 程序中出现的错误 ( dx 打包 PC 可执行文件报错 | dalvik 命令执行 kotlin 编译的 dex 文件报错 )
453 0
【错误记录】记录 Android 命令行执行 Java 程序中出现的错误 ( dx 打包 PC 可执行文件报错 | dalvik 命令执行 kotlin 编译的 dex 文件报错 )
|
移动开发 小程序 前端开发
直播回放:快速上手,使用 Kotlin 把支付宝小程序装进自己的 App
写一个 Android App 或许不难,但企业对于移动应用的要求愈来愈高,不只要求开发速度、稳定度、质量等。
1492 0
直播回放:快速上手,使用 Kotlin 把支付宝小程序装进自己的 App
|
移动开发 运维 小程序
快速上手,使用 Kotlin 把支付宝小程序装进自己的 App
8月14日下午3点,快速构建一个超级 App,具备动态扩展的架构设计,甚至能够在 App 中自启动小程序。
705 0
快速上手,使用 Kotlin 把支付宝小程序装进自己的 App
|
Java Android开发 Kotlin
Kotlin强势开发一个Android(安卓)程序
一、以IDEA为例,创建一个安卓应用 二、选择安卓,信息填一填 三、点击下一步 四、在Add an Activity to Mobile的时候选择一个基本的Activity(Basic Activity) 五...
1021 0
|
Kotlin
kotlin高阶函数开发一个程序,统计文本中字符串出现的个数
一、高阶函数是Kotlin的核心部分,下面来使用下高阶函数写一个程序 注意:我这里的File使用的是:与src同级的文件,你可以根据自己的需要,修改文件地址 代码实例 package net.
1359 0
Kotlin导出可执行的程序
一、在用Kotlin写完程序后,怎么导出使他成为可执行的程序。 首先需要添加两行代码 /**添加两行代码,指出导出的是程序*/ apply plugin: 'application' //尽管包名为Counter.
1245 0
|
Android开发 Kotlin
x3d
|
Java PHP
用Kotlin改写PHP程序是什么样的体验
学Kotlin其实要看:http://kotlinlang.org/docs/kotlin-docs.pdf 在线版是不完整的!!!少了一些章节,会有点难看懂后面的文档。 我选择了WordPress里的错误消息管理类wp-error.php为对象,没有依赖其他具体场景和类,所以比较适合移植和对比。
x3d
1138 0
|
2月前
|
JSON 调度 数据库
Android面试之5个Kotlin深度面试题:协程、密封类和高阶函数
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点。文章详细解析了Kotlin中的协程、扩展函数、高阶函数、密封类及`inline`和`reified`关键字在Android开发中的应用,帮助读者更好地理解和使用这些特性。
35 1
|
3月前
|
Android开发 开发者 Kotlin
告别AsyncTask:一招教你用Kotlin协程重构Android应用,流畅度飙升的秘密武器
【9月更文挑战第13天】随着Android应用复杂度的增加,有效管理异步任务成为关键。Kotlin协程提供了一种优雅的并发操作处理方式,使异步编程更简单直观。本文通过具体示例介绍如何使用Kotlin协程优化Android应用性能,包括网络数据加载和UI更新。首先需在`build.gradle`中添加coroutines依赖。接着,通过定义挂起函数执行网络请求,并在`ViewModel`中使用`viewModelScope`启动协程,结合`Dispatchers.Main`更新UI,避免内存泄漏。使用协程不仅简化代码,还提升了程序健壮性。
105 1