For loop 将NxN for循环修改为更简单

For loop 将NxN for循环修改为更简单,for-loop,kotlin,For Loop,Kotlin,我想用lambdas做一个乘法表。 我成功了,但我不喜欢重复(1..9).forEach{…} 我怎样才能避免这种重复 (1..9).forEach { i -> (1..9).forEach { println("$i x $it = ${i * it}") } } 有时嵌套循环是最好的,但您可以这样做: IntArray(81) { it / 9 + 1 }.zip(IntArray(81) { it.rem(9) + 1 }).forEach {

我想用lambdas做一个乘法表。 我成功了,但我不喜欢重复
(1..9).forEach{…}

我怎样才能避免这种重复

(1..9).forEach { i ->
    (1..9).forEach {
        println("$i x $it = ${i * it}")
    }
}

有时嵌套循环是最好的,但您可以这样做:

IntArray(81) { it / 9 + 1 }.zip(IntArray(81) { it.rem(9) + 1 }).forEach { 
    p ->
    println("${p.first} x ${p.second} = ${p.first * p.second}")
}

(1..9*9)。forEach
?很好。但我希望打印格式为“println($I x$it=${I*it}”)。为什么要删除嵌套循环?还有其他方法,但都可能更复杂,或者需要第三方库;嵌套循环是一种常见的习惯用法,并且被广泛理解。如果您转到1..81,您可以使用
${it%9}
${it/9}
来获取行和列,但再次-为什么?@soyLen您可以将
(1..9)
放入变量中,但仅此而已。您将无法避免重复用于迭代的任何内容。