嗨,我是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");
}
}
}
答案 0 :(得分:0)
如何重构代码并拆分两个动作:
示例:
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;
}