java - for 循环中的输入对话不起作用?

标签 java swing

我对 Java 很陌生,正在尝试为复利计算器制作一个基本的 GUI。我设置字符串来接收用户输入,并且它适用于前两个 double ,但是当我希望字符串接受 for 循环长度的输入时,我收到错误。我想做的事不可能吗?

import javax.swing.JOptionPane;

class Sample {
    public static void main(String[] args) {

        String p = JOptionPane.showInputDialog("Enter initial investment: ");
        String r = JOptionPane.showInputDialog("Enter interest rate (as a decimal): ");
        String y = JOptionPane.showInputDialog("Enter time period (in years): ");

        double num1 = Integer.parseInt(p);
        double num2 = Integer.parseInt(r);
        double num3 = Integer.parseInt(y);
        double amount;

        for(double year = 1; year <= y; year++){
            amount = num1 * Math.pow(1 + num2, year);
        }

        JOptionPane.showMessageDialog(null, "The answer is: " + amount, "the title", JOptionPane.PLAIN_MESSAGE);
    }   
}

最佳答案

有了这个它应该可以工作:

    String p = JOptionPane.showInputDialog("Enter initial investment: ");
    String r = JOptionPane.showInputDialog("Enter interest rate (as a decimal): ");
    String y = JOptionPane.showInputDialog("Enter time period (in years): ");

    double num1 = Double.parseDouble(p);
    double num2 = Double.parseDouble(r);
    double num3 = Double.parseDouble(y);
    double amount = 0;

    for(double year = 1; year <= num3; year++){
        amount = num1 * Math.pow(1 + num2, year);
    }

    JOptionPane.showMessageDialog(null, "The answer is: " + amount, "the title", JOptionPane.PLAIN_MESSAGE);

如果您想要 double 值,请不要使用 Integer.parseInt()。另外,您不能将 double /整数与 for 循环中的字符串进行比较

关于java - for 循环中的输入对话不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41219546/

相关文章:

java - 如何使用 Spring Data 编写 OrientDB 更新查询

java - 如何在 JEditorPane 中显示 html 文件

java - 添加 JFileChooser 而不执行任何操作会导致面板不呈现

javascript - 如何在 JTextArea 中对文本进行样式化(加粗​​)?

java - 如果我在 JFrame 内的任何地方按 escape(不仅仅是在特定的文本框等;),如何关闭 JFrame ?

java - 有没有办法管理存储在 Firestore 中的 POJO 类属性?

java - 从对象初始化数组会产生 NullPointerException

java - java 中的 XMLParser

java - Android-apt 插件与 Android Gradle 插件不兼容

Java - 将值输入 JTextArea 后事件之间的延迟