You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中do-while循环存储用户输入及自助结账清单打印问题

解决超市自助结账程序的数组存储问题

要实现存储所有商品信息并计算总金额,核心是用数组保存每一件商品的名称和价格,而非用单个变量覆盖之前的数据。下面是完整实现代码及关键说明:

完整代码实现

import java.util.Scanner;

public class SelfCheckout {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // 定义数组存储商品信息,最多支持10件
        String[] itemNames = new String[10];
        double[] itemPrices = new double[10];
        int itemCount = 0; // 记录已添加的商品数量
        boolean addMore;

        do {
            if (itemCount >= 10) {
                System.out.println("已达到最大商品数量(10件),无法继续添加");
                break;
            }

            // 输入当前商品信息
            System.out.print("请输入第" + (itemCount + 1) + "件商品的名称:");
            itemNames[itemCount] = scanner.nextLine();
            System.out.print("请输入第" + (itemCount + 1) + "件商品的价格:");
            itemPrices[itemCount] = scanner.nextDouble();
            scanner.nextLine(); // 清除输入缓冲区的换行符

            // 询问是否继续添加
            System.out.print("是否添加更多商品?(yes/no):");
            String choice = scanner.nextLine().toLowerCase();
            addMore = choice.equals("yes");

            itemCount++; // 商品数量递增
        } while (addMore);

        // 打印购物清单并计算总金额
        System.out.println("\n--- 购物清单 ---");
        double total = 0.0;
        for (int i = 0; i < itemCount; i++) {
            System.out.println("商品" + (i + 1) + ": " + itemNames[i] + ",价格:" + itemPrices[i] + "元");
            total += itemPrices[i];
        }
        System.out.println("----------------");
        System.out.println("总金额:" + total + "元");

        scanner.close();
    }
}

关键逻辑说明

  • 数组存储:用String[] itemNames和double[] itemPrices两个数组分别保存商品名称与价格,长度设为10对应最大商品限制。
  • 计数器控制:itemCount既作为数组的索引位置标记,也用来后续遍历打印时确定有效商品的范围(避免打印未使用的数组空位)。
  • 循环终止条件:循环内先判断是否已达10件商品,是则直接退出;否则根据用户输入的yes/no决定是否继续添加。
  • 清单与总价计算:通过for循环遍历数组的前itemCount个元素,逐个打印商品信息并累加价格得到总金额。

示例输出

请输入第1件商品的名称:牛奶
请输入第1件商品的价格:3.5
是否添加更多商品?(yes/no):yes
请输入第2件商品的名称:面包
请输入第2件商品的价格:5.0
是否添加更多商品?(yes/no):no

--- 购物清单 ---
商品1: 牛奶,价格:3.5元
商品2: 面包,价格:5.0元
----------------
总金额:8.5元

内容的提问来源于stack exchange,提问作者Rashad F

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 14:55:20