2010-09-12 40 views
0

我对为什么输出不是我希望它是在嵌套下面while循环不解:嵌套而在R回路行为

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 
... 

有什么建议吗?感谢您的帮助。

回答

7

循环的行为没有错。

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,神奇吗?你可能想尝试自己做,不是吗?

+0

谢谢! j需要重新初始化为1!你是个绅士! – user97979717 2010-09-12 19:15:13