每天学一点 Kotlin -- 控制流:循环

2021-10-22  本文已影响0人  冯可乐同学

----《第一季Kotlin崛起:次世代Android开发 》学习笔记

总目录:每天学一点 Kotlin ---- 目录
上一篇:每天学一点 Kotlin -- 控制流:多元判断
下一篇:每天学一点 Kotlin -- 字符串和字符

1. 介绍

1.1 Kotlin 支持其他语言中常见的两种循环:while 和 for 循环。while 循环的语法和C、Java中一样的。for 循环的语法和 Java 中的 forEach 的语法很像。

2. for 循环

2.1 for 循环的语法如下:

for(单项 in 集合){
  // 具体的操作... 
}

其中,“单项”是一个常量,不需要再添加 val 关键字了。而且它只在 for 循环的大括号内部使用。

2.2 Kotlin 中的 for 循环用于迭代任何一个预定义或者扩展了一个名为 iterator 的函数。所有集合类型都提供了这个函数。举个栗子:

fun main(args: Array<String>) {

    testFor_01()
}

fun testFor_01() {
    val list = listOf(2, 3, 5, 6, 8)
    for (k in list) {
        print("  " + k)
    }

    println()
    val set = setOf(1, 2, 3, 4)
    for (k in set) {
        print("  ${k}")
    }
}

打印结果:

2  3  5  6  8
1  2  3  4

2.3 一个对象想要被 for 循环使用,需要实现一个 iterator 的函数。这个函数必须返回一个提供了实现以下两个操作符函数的对象实例:

operator fun hasNext() : Boolean 
operator fun next() : T

编译器不会纠结于任何特定的接口,只要这个对象返回这两个函数就可以。比如,系统提供的字符串类 String,Kotlin 已经提供了一个 iterator 扩展函数,所以 String 能用 for 循环进行迭代。

fun testFor_02() {
    val str = "努力学习Kotlin"
    for (item in str) {
        print(item + " ")
    }

    println()
    val arr = arrayOf(1, 2, 3, 4, 5, 6)
    for (item in arr) {
        print("  " + item)
    }
}

打印结果:

努 力 学 习 K o t l i n 
  1  2  3  4  5  6

2.4 对于 Java 或 C 中的 for 的指定次数的循环,Java 中写法为:

for(int i = 0; i < 100; i++){
System.out.println("" + i)
}

在Kotlin中,相应的写法为:

for(i in 1..100){
   println("" + i)
}

3. while 循环

while 循环的语法和C、Java中一样的,举例如下:

fun main() {
    var i = 0
    while(i < 4){
        i++
        println("这是一个有限循环...")
    }

//    while(true){
//        println("这是一个无限循环...")
//    }
}
相关代码:https://gitee.com/fzq.com/test-demo
上一篇下一篇

猜你喜欢

热点阅读