java - javax.swing.JOptionPane 不显示结果
问题描述
嗨,我是 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");
}
}
}
解决方案
如何重构您的代码并拆分两个操作:
- 从用户和计算奖金接收数据
- 打印出用户名和奖金
例子:
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;
}
推荐阅读
- java - 在 mac 上运行的 eclipse 上找不到 Json 文件异常。在 Windows 上运行良好
- ios - 从照片库 iOS (Swift) 中删除缓存的视频
- php - 在 POST 值不为空之前,如何防止 SQL 被执行?
- amazon-web-services - 如何在 dynamoDB 全局表中实现强删除一致性
- c# - UIAutomation 无法滚动我的 UI 元素。但为什么?
- python - 如何修复:主要功能无法访问 - Python 3.5
- python - 如何在 Aiogram 的调度程序中从 message_handler 中排除 /command?
- spring-cloud-stream - 加入包含对象的 kafka 流
- pandas - GroupBy 方法更改数据类型
- java - 使用 KeyNavigatorBehavior 时使用哪些键来移动?我该如何设置它们?