Kotlin For循环,困惑



有人解释它是如何工作的吗?X和Y回答,请解释。答案:81和23

fun main(args: Array<String>) {
var x =0
var y =20
for (outer in 1..3) {
for (inner in 4 downTo 2) {
x += 6
y++
x += 3
}
y -= 2
}
println("$x $y")
}

您可以使用插入的print语句遵循上述步骤。对于x,它看起来像这样:

var x = 0
for (outer in 1..3) {
for (inner in 4 downTo 2) {
x += (6 + 3)
println("outer: $outer | inner: $inner | x: $x")
}
println()
}
println("x: $x")
Output:
outer: 1 | inner: 4 | x: 9
outer: 1 | inner: 3 | x: 18
outer: 1 | inner: 2 | x: 27
outer: 2 | inner: 4 | x: 36
outer: 2 | inner: 3 | x: 45
outer: 2 | inner: 2 | x: 54
outer: 3 | inner: 4 | x: 63
outer: 3 | inner: 3 | x: 72
outer: 3 | inner: 2 | x: 81
x: 81

与y相同:

var y = 20
for (outer in 1..3) {
for (inner in 4 downTo 2) {
y++
println("outer: $outer | inner: $inner | y: $y")
}
y -= 2
println("outer: $outer | y: $y")
println()
}
println("y: $y")

输出:

outer: 1 | inner: 4 | y: 21
outer: 1 | inner: 3 | y: 22
outer: 1 | inner: 2 | y: 23
outer: 1 | y: 21
outer: 2 | inner: 4 | y: 22
outer: 2 | inner: 3 | y: 23
outer: 2 | inner: 2 | y: 24
outer: 2 | y: 22
outer: 3 | inner: 4 | y: 23
outer: 3 | inner: 3 | y: 24
outer: 3 | inner: 2 | y: 25
outer: 3 | y: 23
y: 23

起始变量x = 0和y = 20。外循环运行3次,内循环在外循环中运行3次。因此,内部循环中的函数被调用9次,外部循环中的函数(y-=2)被运行3次。

x = 0 + (9 * (6 + 3)) = 81

y = 20 + 9 + (3 * -2) = 23

最新更新