kotlin中循环和嵌套循环的区别

Differences between loops and nested loops in kotlin

fun main(args: Array<String>) {
    val books = arrayListOf("farenheit 451", "1984", "Altered Carbon", "dark matter", "Le probleme à trois corps")
    for (book in books) {
        if (book.contains('e')) {
            println(book)
        }
    }
}

为什么打印这个结果:

华氏 451
变碳
暗物质
三军问题

当这个 :

fun main(args: Array<String>) {
    val books = arrayListOf("farenheit 451", "1984", "Altered Carbon", "dark matter", "Le probleme à trois corps")
    for (book in books) {
        if (book.contains('e')) {
            for(l in book){
                println(l)
            }
        }
    }
}

单独打印每个字符?

我想我知道,但不确定: 第一个循环将遍历每个元素,因此逐行打印书籍名称。

而在第二种情况下,嵌套循环遍历每个元素的每个字符

我理解正确吗?

是的,你完全正确; books 字符串集合 ,而 book 单个 字符串。

因为您不能遍历单个字符串,所以您要求遍历字符串的每个 字符(字母)。

所以你将遍历书籍,farenheit 451 将通过条件,因此 l 将是 far 和每次迭代依此类推。 1984 将被跳过,因为它没有通过条件,并且不会被循环。 Altered Carbon 然后将传递条件,因此将遍历其每个字符。