我很困惑为什么输出不是我在以下嵌套while循环中所期望的:
i = 1
j = 1
while(i<5){
print("i")
print(i)
i = i + 1
while(j<5){
print("j")
print(j)
j = j + 1
}
}
我得到的输出是:
[1] "i"
[1] 1
[1] "j"
[1] 1
[1] "j"
[1] 2
[1] "j"
[1] 3
[1] "j"
[1] 4
[1] "i"
[1] 2
[1] "i"
[1] 3
[1] "i"
[1] 4
但我期待的是
[1] "i"
[1] 1
[1] "j"
[1] 1
[1] "j"
[1] 2
[1] "j"
[1] 3
[1] "j"
[1] 4
[1] "i"
[1] 2
[1] "j"
[1] 1
[1] "j"
[1] 2
[1] "j"
[1] 3
[1] "j"
[1] 4
...
有什么建议吗?谢谢你的帮助。
答案 0 :(得分:6)
循环的行为没有错。
i = 1 // Beginning of your code, you're initializing i, changing its value to 1
j = 1 // ... initializing j as well.
while(i<5){ // looping while i < 5
print("i")
print(i)
i = i + 1 // incrementing i
while(j<5){ // looping while j is < 5
print("j")
print(j)
j = j + 1 // incrementing j
}
}
现在再考虑一下你的代码。
你想要的是你的第二个while
循环为第一个循环实际循环4次。
所以你期望j
的值在第一个while
循环范围内被设置回1,神奇地?你可能想尝试自己做,不是吗?