Lua for
下列**正确**代码实现功能:
计算1至5区间每个数的平方。
function square(max,n)
if n < max
then
n = n + 1
return n, n * n
end
end
for i,n in square,5,0
do
print(i,n)
end
输出:
1 1
2 4
3 9
4 16
5 25
问题现象:
在square函数中,增加else分支,返回1,1。如下:
function square(max,n)
if n < max
then
n = n + 1
return n, n * n
else -- 增加分支
return 1,1
end
end
for i,n in square,5,0
do
print(i,n)
end
输出:
1 1
2 4
3 9
4 16
5 25
1 1
2 4
3 9
4 16
5 25
1 1
2 4
....
问题:
我认为输出应该是:
1 1
2 4
3 9
4 16
5 25
1 1
1 1
1 1
....
我个人认为,当循环进行到第6次以后,square函数n参数等于5,没有条件使其增加,一直返回1,1。
第7次为什么n又变成2了,哪个条件改变了n的值?