Kotlin中循环和嵌套循环之间的区别

时间:2018-11-18 22:23:53

标签: loops for-loop while-loop nested nested-loops

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)
        }
    }
}

为什么会打印此结果:

farenheit 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)
            }
        }
    }
}

分别打印每个字符?

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

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

我正确理解了吗?

1 个答案:

答案 0 :(得分:0)

是的,你是绝对正确的。 books是字符串的集合,而book单个字符串。

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

因此,您将遍历书籍,farenheit 451将通过条件,因此l将为far,依此类推对于每次迭代。 1984将被跳过,因为它没有通过条件,也不会被循环。 Altered Carbon随后将通过条件,因此其每个字符都将循环显示。