Kotlin编程之if语句,while循环,when表达式,for循环

淡淡的烟草味﹌ 2022-06-15 10:45 315阅读 0赞

Kotlin编程相关知识点介绍

  • Kotlin编程之使用Intellij IED和了解源文件(.kt)
  • Kotlin编程之类的介绍和使用
  • Kotlin编程之类的属性
  • Kotlin编程之方法
  • Kotlin编程之父类和继承父类
  • Kotlin编程之接口和实现接口
  • Kotlin编程之伴生对象,抽象类,密封类
  • Kotlin编程之嵌套类,内部类,匿名内部类
  • Kotlin编程之对象的表达式和声明
  • Kotlin编程之扩展方法
  • Kotlin编程之扩展属性和扩展伴生对象
  • Kotlin编程之泛型

If语句


在Kotlin编程中,没有Java中三元运算符(condition ? then : else),但是通过if语句一样可以实现相同的效果。

  1. package com.xingen.kotlin.day2017529.pm
  2. fun main(args: Array<String>) {
  3. println(test1(1))
  4. test2(-1)
  5. }
  6. /** * if 语句作来实现Java 中三元运算符(condition ? then : else)的效果, * 但是必须要有else分支。 * * Kotlin编程中没有三元运算符。 */
  7. fun test1(i: Int): Int {
  8. var v = if (i > 0) i else 0 //可以理解为if(i>0) { i} else { 0 },if 语句中单个表达式时候,大括号可以省略。
  9. return v
  10. }
  11. /** * if表达式作为块,可以包含其他表达式,但最后一个表达式是该块的值。 */
  12. fun test2(i: Int) {
  13. var v = if (i > 0) {
  14. println("i的值大于0")
  15. i
  16. } else if (i==0) {
  17. println("i的值等于0")
  18. 0
  19. }else{
  20. println("i的值小于0")
  21. i
  22. }
  23. }

输出结果:

  1. 1
  2. i的值小于0

可知:

  • if可以作为语句也可以作为表达式。当 if不作为语句,而是表达式,将返回值赋值给变量,则必须要else分支。
  • if表达式可以实现三元运算符效果,具备返回值,然后赋值给变量。
  • if表达式作为块,可以包含其他表达式,但最后一个表达式是该块的值。

when语句


在Kotlin编程中,可以使用when语句实现Java中switch语句,和if else if 语句的效果。

  1. package com.xingen.kotlin.day2017529.pm
  2. fun main(args: Array<String>) {
  3. test3(4)
  4. }
  5. /** * when表达式有参数:实现switch()语句效果 * when表达式无参数: 实现if -else if-else语句效果 */
  6. fun test3(obj: Any): String {
  7. var v=when(obj){
  8. 1->"1" //是否等于1
  9. in 2..3->"2到3区间内" //是否在2到3的范围内
  10. is String->"字符串类型" //是否是String类型数据
  11. else->{
  12. println("默认情况,默认返回0")
  13. "0"
  14. }
  15. }
  16. return v
  17. }

输出结果:

  1. 默认情况,默认返回0

可知:

  • when会对所有的分支进行检查直到有一个条件满足。when 可以用做表达式或声明。如果用作表达式的话,那么满足条件的分支就是总表达式。如果用做声明,那么分支的值会被忽略。(像 if 表达式一样,每个分支是一个语句块,而且它的值就是最后一个表达式的值)
  • when表达式有参数:实现switch()语句效果
  • when表达式无参数: 实现if -else if-else语句效果

注意点: when语句与密封类可以一起使用,而不需要写else分支。

for循环语句


  1. package com.xingen.kotlin.day2017529.pm
  2. fun main(args: Array<String>) {
  3. test4(listOf("1","2","3"))
  4. }
  5. /** * for 循环 */
  6. fun test4(list: List<String>){
  7. //for()中的条件等同于 i in list.indices,采取判断角标是否在某个数值区间内。
  8. for (i in 0..list.lastIndex){
  9. println("集合中$i 角标的数据是:"+list[i])
  10. }
  11. //类似java中增强for循环
  12. for (item in list){
  13. println("每次遍历的数据是:"+item)
  14. }
  15. //迭代器中的索引和对应值
  16. for ((index,values) in list.withIndex()){
  17. println("使用withIndex方式:集合中$index 角标的数据是:$values")
  18. }
  19. }

输出结果:

  1. 集合中0 角标的数据是:1
  2. 集合中1 角标的数据是:2
  3. 集合中2 角标的数据是:3
  4. 每次遍历的数据是:1
  5. 每次遍历的数据是:2
  6. 每次遍历的数据是:3
  7. 使用withIndex方式:集合中0 角标的数据是:1
  8. 使用withIndex方式:集合中1 角标的数据是:2
  9. 使用withIndex方式:集合中2 角标的数据是:3

可知:

for循环遍历输出有多种方式:

  • 索引值在某个范围的变量,通过索引获取值
  • 遍历值,类似java中增强for循环
  • 迭代器方式,获取索引和值

while和do..while


在Kotlin编程中,do..while语句和while语句和Java编程中类似。

  1. package com.xingen.kotlin.day2017529.pm
  2. fun main(args: Array<String>) {
  3. test5(2)
  4. }
  5. /** * while语句和do...while语句 */
  6. fun test5(i: Int){
  7. var index=i
  8. //再利用do...while循环输出到0
  9. do {
  10. println("do while语句每次输出index的值:$index")
  11. index --//自减
  12. }while (index>0)
  13. //先利用while恢复到原本值
  14. while (index<=i){
  15. println("while语句每次输出index的值:$index")
  16. index++//自增
  17. }
  18. }

输出结果:

  1. do while语句每次输出index的值:2
  2. do while语句每次输出index的值:1
  3. while语句每次输出index的值:0
  4. while语句每次输出index的值:1
  5. while语句每次输出index的值:2

发表评论

表情:
评论列表 (有 0 条评论,315人围观)

还没有评论,来说两句吧...

相关阅读