For循环嵌套在while循环中

时间:2013-10-18 02:00:48

标签: matlab for-loop while-loop

我在Matlab中编写了一个while循环,它应该确定“a”参数“n”的值超过300.我知道“n”应该是17,但我得到一个值4代替。有没有人看到这个问题?

代码如下:

a = 10;
k = 0.5;
n = 2;
while a < 300
    for m = 1:5
        a = a + (a*k) + n;
    end
    n = n + 1;
end

编辑: 由于Barmar的评论,我意识到我没有重新初始化我的“a”变量。虽然代码看起来效率可能不高,但这对我有用:

a = 10;
k = 0.5;
n = 2;
while a < 300
    a = 10;
    for m = 1:5
        a = a + (a*k) + n;
    end
    if a >= 300
        break
    end
    n = n + 1;
end

1 个答案:

答案 0 :(得分:0)

如果您的公式正确,那么4就是您应该期待的答案。第一个for循环运行将a转换为respsective值:

17, 27, 42, 65, 99

然后将n变为3.下一次运行变为:

151, 229, 346, 522, 786

请注意,a现在是&gt;但是我们必须再增加一次。因此n = 4。