Java 循环到一个变量中

Java 循环到一个变量中,java,methods,while-loop,main,Java,Methods,While Loop,Main,我正在为我的Java类解决一个问题,我希望您能给我指出正确的方向,或者给我一个提示 main程序使用我在main外部编写的方法 程序获取在JOptionPane中输入的变量,并将它们放入方法中 该方法获取这些变量,并通过“while”循环运行它们,然后将结果返回给main 我遇到的问题是,让返回值返回到main中进行输出 我想要 return fin; 返回main,这样就可以输出它了 问题的一部分在于,我必须使用不同的数据类型,特别是float和double,我似乎无法正确解析它们 代码如下

我正在为我的Java类解决一个问题,我希望您能给我指出正确的方向,或者给我一个提示

main程序使用我在main外部编写的方法

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

该方法获取这些变量,并通过“while”循环运行它们,然后将结果返回给main

我遇到的问题是,让返回值返回到main中进行输出

我想要

return fin;
返回main,这样就可以输出它了

问题的一部分在于,我必须使用不同的数据类型,特别是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;



}
编辑编辑编辑

我把问题解决了,主要是,有点,不是真的

我用一个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。”

这是密码,在所有邪恶的荣耀中:

主要内容:

正在调用的方法:

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

根据您的问题,我猜您是在尝试获取方法
composite
返回的值

在获得变量
time
rate
init
后,只需使用
JOptionPane
在主方法内调用方法复合。例如:

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

代码中有很多奇怪的东西,但在我看来,这就是你试图做的:

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

我真的不知道你在问什么。。。这是一个编译错误还是运行时错误?你不应该返回大写而不是fin吗?如果我安装程序的另一半会有帮助吗?这正是给我带来问题的部分。你的方法是什么?我的意思是,你只需要将fin和资本相等,并将其返回,所以fin将具有资本在那个时刻的价值(垃圾价值)。你不应该归还资金吗?方法是使用上面的代码来计算利息。我可以编辑帖子,向您展示程序的另一半。讲师说在程序中使用“float”数据类型作为初始值。
init
在上面仍然是float。方法签名决定了它的参数必须是什么类型,因为@BenKnoble说,
init
仍然处于“float”状态,除非您的讲师希望您明确指定。可能像
fin=money.composite(5105500f)
;注意,“f”init必须是一个浮点数据类型。那么它也应该返回一个浮点。除此之外,除了在某些边缘情况下会损失一些精度外,这并不重要。
double compound = Compound(time, rate, init);
System.out.println("The answer is " + compound);
public float compound(int time, double rate, float init)
{
    return init * Math.pow(1 + (rate / 100), time);
}