2014-11-21 40 views
-1

我正在尝试为家庭作业编写一个超级基本程序,而且我很难入门,希望得到一些帮助。这里是提示: 想象一下,你去银行并在一个账户中存入20,000美元的账户,每年赚取6%的利息,每年的利息都存入账户。编写 一个MATLAB程序,计算累计需要花费的年数 $ 500,000。尝试一个用于计算兴趣的MATLAB程序

所以,我知道我需要声明一些变量,我想用if语句来使用for循环,因为我们尚未覆盖while循环。这是我迄今的尝试:

%This program calculates interest accumulated on a given value and the 
%years it would take to reach a given goal value 

%initial deposit 
Deposit = 20000; 

year = 0; 

for year = 1:1:n 
    year = year + 1; 
    Deposit = Deposit*(1.06); 

if Deposit < 500000 


end 

谢谢大家!

+0

你必须使用循环?有一个众所周知的方程来解决这个问题:http://en.wikipedia.org/wiki/Compound_interest#Compound_Interest – 2014-11-21 21:54:23

+0

年年代而不是我循环,因为这是迭代。对于每年,考虑一年中存款如何变化(为什么每年增加20000美元?)。基本上,手写前几年,然后尝试修改您的代码以匹配您的公式。 – Peter 2014-11-21 22:27:54

+0

谢谢彼得。所以我的想法是,我必须计算兴趣,然后将其添加到总体。这就是为什么我将20000添加到存款行的原因。好的,我编辑了代码,但我不确定year = 1:n行。我应该定义n吗? – 2014-11-21 23:30:02

回答

0

这里有两种for循环方法。一个是你原来有什么:

year = 0; 
for i = 1:n 
    year = year + 1; 
    % blah blah Deposit 
end 

在这种情况下,i计数的for循环迭代次数,而你增加循环内的year变量。正如@Peter指出的那样,这是多余的,您可以简单地使用year作为循环变量,然后根据循环变量的性质自动递增。

for year = 1:n 
    % No need to increment "year", that is being done by the for loop 
    % blah blah Deposit 
end 

我喜欢你原来的想法好(这将推广更好,当你了解while循环来)。不管你选择哪种版本,它最终都会运行完整的迭代,这可能不是你想要的。为了提前停止它,你需要的break命令:

for ... 
    % blah blah Deposit 
    if (something about the Deposit) 
     % We achieved our stop condition, so break out of the for loop 
     break; 
    end 
    % Go on to the next for loop iteration 
end 

当它击中break声明,MATLAB跳过直奔循环的结束。

但是,这确实引起了一个问题:您不知道是否退出循环,因为您重复执行了n或因为您遇到了break语句。因此,您应该添加某种检查,然后再假定这是您要查找的year的值。