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

举报
帅次 发表于 2021/12/23 01:20:49 2021/12/23
【摘要】 作者简介:CSDN博客专家、华为云享专家认证 系列专栏:Kotlin 初学者 学习交流:三人行必有我师焉;择其善者而从之,其不善者而改之。 程序的逻辑控制 程序的执行语句主要分为三种: 顺序语句:一条接着一条顺序执行下去,程序代码默认就是顺序语句。 条件语句:if 和 when 循环语句:for循环 和 w...

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

系列专栏:Kotlin 初学者

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

程序的逻辑控制

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

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

  • 条件语句:if 和 when

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

条件语句

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

if

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

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

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

实践


  
  1. fun main() {
  2.     val number = 83
  3.     val str = if (0 < number && number <= 59) {
  4.         //0-59范围
  5.         "$number 不及格"
  6.     } else if (59 < number && number <= 75) {
  7.         "$number 及格"
  8.     } else if (75 < number && number <= 85) {
  9.         "$number 良好"
  10.     } else {
  11.         "$number 优秀"
  12.     }
  13.     println(str)
  14. }

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

Kotlin if 额外功能

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

if..in

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

range 表达式

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

实践


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

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

if..!in

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


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

when

  • 允许你编写条件式,在某个条件满足时,执行对应的代码

  • 只要代码包含else if分支,都建议改用when

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

实践


  
  1. fun main() {
  2.     val number = 70
  3.     val s = when(number){
  4.         in 0..59->"不及格"
  5.         in 60..75->"及格"
  6.         in 76..85->"良好"
  7.         else -> "优秀"
  8.     }
  9.     println(s)
  10. }

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

循环语句

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

Koltin也提供了这两种循环。

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

  • for循环改动比较大
    • for-i在Kotlin中被移除。

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

for-in循环

实践


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

until 关键字

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

实践


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

step 关键字

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

实践


  
  1.     //使用 step 关键字跳过一些元素。
  2.     //如Java中 for-i 的i = i+2。
  3.     for (number in 3 until 8 step 2) {
  4.         println(number)
  5.     }
  6.     println("-------")
  7.     //使用 step 关键字跳过一些元素。
  8.     //如Java中 for-i 的i = i+3。
  9.     for (number in 3 until 8 step 3) {
  10.         println(number)
  11.     }

downTo 关键字

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


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

foi-in 循环集合

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


  
  1.     //for-in集合
  2.     val items = listOf("字节""腾讯""阿里巴巴""百度")
  3.     for (item in items) {
  4.         println(item)
  5.     }
  6.     println("-------")
  7.     for (index in items.indices) {
  8.         println("item at $index is ${items[index]}")
  9.     }

while循环

while简单循环

实践


  
  1.     //while循环
  2.     var num = 1
  3.     while (num<5){
  4.         println("$num,while循环")
  5.         num++
  6.     }

do...while循环

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

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

实践


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

Kotlin 控制语句

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

  • break : 终止使用它的循环

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

return 语句

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

实践


  
  1. fun main() {
  2.     //return
  3.     println(userInfo("ShuaiCi",18))
  4. }
  5. fun userInfo(name:String,age:Int):String{
  6.     //具名函数这里要加return
  7.     return "$name-今年:$age"
  8. }

break 语句

        终止使用它的循环

实践


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

continue 语句

        继续下一次使用它的循环

实践


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

小结

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

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

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

文章来源: shuaici.blog.csdn.net,作者:帅次,版权归原作者所有,如需转载,请联系作者。

原文链接:shuaici.blog.csdn.net/article/details/121699731

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。