2012-11-08 65 views
0

我目前正在研究Java复利计算器。我对Java非常陌生,这个项目非常具有挑战性,现在我发现自己处于一堵砖墙。Java复利计算器

我怕我做一些根本性的错误,我应该知道

我得到错误的“类型的非法启动”旁边的我行(为什么我把东西放错了地方?):

for (int i = 0; i<period; i++) 

我想我可能需要将其放在一个方法内?这是我的完整代码。

Account.java:

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class Account extends JFrame { 

private int period; 
private int balance; 
private int rate; 
private String printstring; 

@Override 
public String toString() { 
    return String.format("Period: " + period + ", Balance: " + balance); 
} 

public int getPeriod() { 
    return period; 
} 

public void setPeriod(int period) { 
    this.period = period; 
} 

public int getBalance() { 
    return balance; 
} 

public void setBalance(int balance) { 
    this.balance = balance; 
} 

public int getRate() { 
    return rate; 
} 

public void setRate(int rate) { 
    this.rate = rate; 
} 

public String getPrintstring() { 
    return printstring; 
} 

public void setPrintString(String printstring) { 
    this.printstring = printstring; 
} 


for (int i = 0; i<period; i++) 
{ 
    balance = (balance * rate) + balance; 
} 
} 

Banker.java

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class Banker { 

private static final int H = 400;  // Height of window pixels 
private static final int W = 500;  // Width of window pixels 

public static void main(String[] args) { 

    String period; 
    String balance; 
    String rate; 

    period = JOptionPane.showInputDialog(null, "Interest period:"); 
    balance = JOptionPane.showInputDialog(null, "Current balance:"); 
    rate = JOptionPane.showInputDialog(null, "Interest rate:"); 
    JFrame frame = new JFrame("Savings Interest Calculator"); 
    JButton calculate = new JButton("Calculate"); 
    JLabel blabel = new JLabel("Period: " + period); 
    JLabel plabel = new JLabel("Balance: " + balance); 
    JLabel flabel = new JLabel("Balance: " + balance); 
    frame.setLayout(new FlowLayout()); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.add(calculate); 
    frame.add(plabel); 
    frame.add(blabel); 
    frame.pack(); 
    frame.setVisible(true); 
} 


} 
+2

for循环需要在方法内。 – assylias

+0

您可以计算复利,不需要循环。 http://qrc.depaul.edu/StudyGuide2009/Notes/Savings%20Accounts/Compound%20Interest.htm –

回答

0

你必须写

for (int i = 0; i<period; i++) 
{ 
    balance = (balance * rate) + balance; 
} 

的方法体内。你不能在你的methods.try中写出这样的语句,把它写在下面的方法体内。

public void myMethod() { 
    for (int i = 0; i<period; i++) 
    { 
     balance = (balance * rate) + balance; 
    } 

}