Java餐费税费小费计算程序报错求助:代码存在哪些问题?
代码问题排查与修复方案
存在的问题:
- 变量使用顺序错误:先执行了税费、小费的计算逻辑,但此时
mealCharge还未通过输入框获取用户输入,处于未初始化状态,运行时会抛出空指针异常。必须先获取输入值,再进行计算。 - 类型不兼容错误:
mealCharge是String类型,无法直接与double类型数值进行乘法、加法运算,需要将输入的字符串转换为double类型。 - 字符串拼接语法错误:弹窗输出语句中
"Your total will be $" + total "."缺少一个+号,导致编译失败。
修复后的代码:
import javax.swing.JOptionPane; public class MealCalculator { public static void main(String[] args){ String mealChargeInput; double mealCharge; double tax; double tip; double total; // 先获取用户输入 mealChargeInput = JOptionPane.showInputDialog("Please enter the charge for the meal."); // 将字符串转换为double类型 mealCharge = Double.parseDouble(mealChargeInput); // 计算税费、小费与总金额 tax = mealCharge * 0.0625; // 餐税6.25% tip = mealCharge * 0.15; // 小费15% total = mealCharge + tax + tip; // 修复字符串拼接错误 JOptionPane.showMessageDialog(null, "Your total will be $" + total + "."); } }
额外说明:
- 用
Double.parseDouble()完成字符串到double类型的转换,若用户输入非数字内容会抛出NumberFormatException,新手阶段可先忽略异常处理,后续再补充。 - 导入了
javax.swing.JOptionPane包,否则编译时会找不到相关类。
内容的提问来源于stack exchange,提问作者tamt3012
相关产品推荐
相关产品推荐

