Java订单统计代码如何实现多订单累计总金额的计算
解决方案
要实现所有订单总金额累加,仅需做少量修改即可,具体修改步骤如下:
- 补全缺失的
File类导入:原代码使用了File类但未导入对应包,需要在代码顶部新增导入语句 - 调整
calcOrder()方法,新增返回值返回当前单条订单的总金额 - 在
main方法中新增累计总金额的变量,循环处理每笔订单时累加对应金额 - 所有订单处理完成后,打印累计的总金额
修改后的完整代码如下:
import java.io.File; import java.util.Scanner; public class Prac3_Q2_JasmineLimSmith { Scanner scan; String set; int setA = 0, setB = 0, setC = 0, setD = 0; void createFile() throws Exception { File file = new File("orders.txt"); scan = new Scanner(file); } void readData() { setA = scan.nextInt(); setB = scan.nextInt(); setC = scan.nextInt(); setD = scan.nextInt(); if (scan.hasNextLine()) scan.nextLine(); } // 修改方法返回值为double,返回当前订单金额 double calcOrder() { double order = ((setA * 9.90) + (setB * 10.90) + (setC * 11.90) + (setD * 12.90)); System.out.println("Set A " + setA); System.out.println("Set B " + setB); System.out.println("Set C " + setC); System.out.println("Set D " + setD); System.out.printf("Total price: %.2f", order); System.out.println(); return order; } public static void main(String args[]) throws Exception { Prac3_Q2_JasmineLimSmith cc = new Prac3_Q2_JasmineLimSmith(); cc.createFile(); // 新增累计总金额变量 double totalAllOrders = 0.0; for (int cnt = 1; cnt <= 10; cnt++) { cc.readData(); // 累加当前订单金额 totalAllOrders += cc.calcOrder(); } // 打印最终累计金额 System.out.println("=========================="); System.out.printf("所有订单累计总金额:%.2f%n", totalAllOrders); } }
如果你不想修改calcOrder()的返回值,也可以选择在类中新增一个成员变量double totalAllOrders = 0.0;,每次在calcOrder()计算完单条订单金额后直接累加到该成员变量,最终循环结束后直接打印该变量即可,实现效果完全一致。
内容的提问来源于stack exchange,提问作者FoodMonster
相关产品推荐
相关产品推荐

