美文网首页
每天学一点 Kotlin -- 控制流:循环

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

作者: 冯可乐同学 | 来源:发表于2021-10-22 09:14 被阅读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

    相关文章

      网友评论

          本文标题:每天学一点 Kotlin -- 控制流:循环

          本文链接:https://www.haomeiwen.com/subject/vskuoltx.html