【问题标题】:Input/Output - Arithmetic Equation输入/输出 - 算术方程
【发布时间】:2015-08-02 04:43:31
【问题描述】:

我是 Java 的新手,两周前开始接触这个问题。我正在上的一门课上遇到了一个问题,这个问题之前已经提出过。将千克转换为磅并四舍五入到小数点后第二位。

我可以创建事物的输入端并弹出一个对话框来提示用户输入重量。我还可以创建一个输出,该输出使用我制作的方程式在对话框中输出答案。

我的问题是如何获取输入的信息并将其从千克转换为磅?

我一直在阅读我的书并在互联网上搜索试图找到答案,我想我可能想多了。感谢您的帮助。

Input.java

//This program asks a user to input a weight in kilograms.

package module2;

import javax.swing.*;

public class Input {

    public static void main(String[] args) {

        String weight;

        weight = JOptionPane.showInputDialog("Enter weight in kilograms");
    }
}

Output.java

//This program outputs a converted weight from kilograms to pounds.

package module2;

import javax.swing.JOptionPane;

public class Output {

    public static void main(String[] args) {

        double kg = 75.5;
        double lb = 2.2;
        double sum;

        sum = (kg * lb);

        JOptionPane.showMessageDialog(null,sum, "Weight Conversion", JOptionPane.INFORMATION_MESSAGE);
    }
}

【问题讨论】:

  • 首先你不能有两个主要方法。
  • @RichN 你可以,但每个实例只能运行一个。你总是可以调用另一个,但这是一件坏事。
  • @Obicere 啊,当然。我假设使用main 方法的“正常”方式。此外,如果你有足够的知识来做到这一点,你可能不会把它们写成main 方法。

标签: java swing input output


【解决方案1】:
// addition of two integers using JOptionPane
import javax.swing.JOptionPane; 

public class Addition

{

   public static void main(String[] args)

  {

    String firstNumber = JOptionPane.showInputDialog("Input <First Integer>");
    String secondNumber = JOptionPane.showInputDialog("Input <Second Integer>");
    int num1 = Integer.parseInt(firstNumber);
    int num2 = Integer.parseInt(secondNumber);
    int sum = num1 + num2;
    JOptionPane.showMessageDialog(null, "Sum is" + sum, "Sumof two Integers", JOptionPane.PLAIN_MESSAGE);
  }
}

【讨论】:

  • 不要只写平面代码。在您的答案中添加更多信息
【解决方案2】:

现在您有 2 个主要方法。这两个都是程序的入口点。由于他们必须共享信息,因此您同时拥有两者是没有意义的。

我建议将Output 的主方法更改为实例方法,采用一个参数:来自Inputweight

像这样:

public void printOutput(final double weight){
    //...
}

然后您可以像这样从Input 的 main 方法调用它:

public static void main(String[] args) {

    String weight;

    weight = JOptionPane.showInputDialog("Enter weight in kilograms");

    double kg = Double.parseDouble(weight); // Be sure to parse the weight to a number
    Output output = new Output(); // Create a new instance of the Output class

    output.printOutput(kg); // Call our method to display the output of the conversion
}

另一件事是,由于Output 当前仅用于该一种方法,您可以考虑将该方法移至Input

【讨论】:

  • 非常感谢您的帮助。这些 Java 东西需要大量吸收和整理。当你说 Double.parseDouble(weight) 特别是 parseDouble 是什么意思?再次感谢您的帮助。
  • @Ph1shPhryd weightString。只是一个字符列表。您不能像数字一样对其进行加法或乘法或除法。相反,您可以调用 Java 库来获取该字符串并对其进行解析。然后返回一个double,它是一个数字。所以你可以这样使用它。
  • 这是有道理的。因此,当我现在运行程序时,无论我输入什么,答案始终保持不变。我试图找出问题,但似乎被卡住了。关于为什么会发生这种情况的任何想法?
  • @Ph1shPhryd 很可能您仍在使用最初设置为 kg 的值,而不是参数 weight
  • @Ph1shPhryd 通常将其分解为较小的离散问题帮助。例如这个:1.从用户那里读取重量为双倍,2.执行转换,3.向用户显示结果输出。通过这种方式,您可以专注于程序的单个部分,对其进行全面测试并真正减少出现错误的机会。
猜你喜欢
  • 1970-01-01
  • 2018-04-14
  • 2021-08-11
  • 1970-01-01
  • 2019-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-19
相关资源
最近更新 更多