循环变量

时间:2015-06-21 23:29:57

标签: java methods while-loop main

我正在为我的Java课程做一个问题,我希望你能指出我正确的方向,或者给我一个提示。

程序主要使用我在main之外写的方法。

该程序获取在JOptionPane中输入的变量,并将它们放入方法中。

该方法接受这些变量,并通过'while'循环运行它们,并将结果返回给main。

我遇到的问题是,返回值返回主输出。

我想要

return fin;

回到主,所以可以输出。

部分问题是,我必须使用不同的数据类型,特别是float和double,我似乎无法正确解析。

代码如下:

public static double Compound(int time,double rate,float init)
{
    double fin,capital;
    int counter;
    fin=capital;
    capital=0;
    counter=0;
    while (counter<time)
    {
        capital=init+(rate/100.0)*init;         
        counter++;          
    }
    return fin;



}

我知道我搞砸了,但我不知道在哪里。

编辑编辑编辑

我设法使代码主要工作。现在我只需要将变量插入上面的代码中。

下面的代码是我用来进入上面代码的代码。

教师希望在一个窗口中输入所有内容。

获取方法的输入会让我感到震惊,我知道。

无论如何,这是代码的其余部分:

import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class Pr50
{
public static void main(String[] args)
{
    JTextField time=new JTextField();
    JTextField interest=new JTextField();
    JTextField initial=new JTextField();
    Object[] fields={
        "Time to Maturity", time,
        "Interest rate", interest,
        "Initial deposit", initial
        };
    JOptionPane.showInputDialog(null, fields);


    int x;
    double fin,rate;
    float init;
    fin=money.Compound(5,10,5500);
}
}

编辑编辑编辑

我遇到了问题,主要是,有点,不是真的。

我通过JOptionPane输出运行程序,然后我得到了gobbeldygook。

import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class Pr50
{
public static void main(String[] args)
{
    JTextField time=new JTextField();
    JTextField interest=new JTextField();
    JTextField initial=new JTextField();
    Object[] fields={
        "Time to Maturity", time,
        "Interest rate", interest,
        "Initial deposit", initial
        };
    JOptionPane.showInputDialog(null, fields);

    JOptionPane.showMessageDialog(null, "The value of the fund is: "+initial);


    /*int x;
    double fin,rate;
    float init;
    fin=money.Compound(5,10,5500);*/
}
}

我真的想知道如何解决这个问题。

编辑编辑编辑

我需要从输入窗口获取变量,但是我收到一条错误消息,指出'JText无法转换为int。'

这是代码,完全是邪恶的荣耀:

主:

import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class Pr50
{
public static void main(String[] args)
{
    fin=money.Compound(time,interest,initial);
    JTextField time=new JTextField();
    JTextField interest=new JTextField();
    JTextField initial=new JTextField();
    Object[] fields={
        "Time to Maturity", time,
        "Interest rate", interest,
        "Initial deposit", initial
        };
    JOptionPane.showInputDialog(null, fields);

    JOptionPane.showMessageDialog(null, "The value of the fund is: "+initial);


    int x;
    double fin,rate;
    float init;
    fin=money.Compound(time,interest,initial);
}
}

调出方法:

public class money
{
public static double Compound(int time,double rate,float init)
{
    return init*Math.pow(1+(rate/100), time);
}
}

2 个答案:

答案 0 :(得分:0)

根据您的问题,我猜您正在尝试获取方法Compound返回的值。

在使用time获取变量rateinitJOptionPane之后,只需在main方法中调用方法Compound。例如:

double compound = Compound(time, rate, init);
System.out.println("The answer is " + compound);

答案 1 :(得分:0)

在该代码中有很多奇怪的东西,但在我看来,这就是你要做的事情:

public float compound(int time, double rate, float init)
{
    return init * Math.pow(1 + (rate / 100), time);
}