javax.swing.JOptionPane不显示结果

时间:2018-11-04 15:54:04

标签: java

嗨,我是Java和编程新手。

我的任务是编写一个程序,该程序计算并打印一般销售公司的销售员奖金。我的班级和测试班级可以正确编译,我可以输入员工姓名,员工代码和销售,但是之后没有得到显示的结果。

我需要运行测试课程,以便员工可以输入其姓名,员工代码和总销售额,并且屏幕将根据总销售额显示奖金。例如,如果员工代码1的Bob的收入超过10,000美元,他们将获得500美元的奖金。我可以输入名称,代码和销售,但是输入后,我只会收到一条消息,提示您按任意键继续。谢谢您的所有帮助。

这是我的测试课:

import javax.swing.JOptionPane;

public class SalesTester {

    public static void main(String[] args) {
        String name = JOptionPane.showInputDialog("Please enter name");
        int code = Integer.parseInt(JOptionPane.showInputDialog("Please enter company code"));
        double sales = Double.parseDouble(JOptionPane.showInputDialog("Please enter your total sales"));
        double bonus = 0;

        if (sales > 0.0)
            switch (code) {
                //employee 1
                case 1:
                    if (sales >= 10000)
                        bonus = 500;
                    else
                        bonus = 200;
                    break;
                //employee 2
                case 2:
                    if (sales >= 20000)
                        bonus = 600;
                    else
                        bonus = 550;
                    break;
                //employee 3
                case 3:
                    if (sales < 10000)
                        bonus = 150;
                    break;
                //employee 4
                case 4:
                    if (sales < 10000)
                        bonus = 150;
                    break;
                //employee 5
                case 5:
                    if (sales < 10000)
                        bonus = 150;

                    System.out.println("Hello " + name + " your bonus is = " + bonus);
                    System.out.println("Error, please enter a positive value only");
            }
    }
}

1 个答案:

答案 0 :(得分:0)

如何重构代码并拆分两个动作:

  1. 从用户那里接收数据和计算奖金
  2. 打印出用户名及其奖励

示例:

public static void main(String[] args) {
    String name = JOptionPane.showInputDialog("Please enter name");
    int employeeCode = Integer.parseInt(JOptionPane.showInputDialog("Please enter company code"));
    double sales = Double.parseDouble(JOptionPane.showInputDialog("Please enter your total sales"));
    JOptionPane.showMessageDialog(null, "Hello " + name + " your bonus is = " + calcBonus(employeeCode, sales));
}

private static double calcBonus(int employeeCode, double sales) {
    if (Double.compare(sales, 0) > 0) {
        if (employeeCode == 1)
            return Double.compare(sales, 100_000) >= 0 ? 500 : 200;
        if (employeeCode == 2)
            return Double.compare(sales, 200_000) >= 0 ? 600 : 550;
        if (employeeCode == 3 || employeeCode == 4 || employeeCode == 5)
            return Double.compare(sales, 100_000) < 0 ? 150 : 0;
    }

    return 0;
}