编辑代码

// 定义三类菜单
var menu1 = ["充电宝": 100, "吹风机": 200, "电冰箱": 4000]
var menu2 = ["巧克力": 8, "牛奶": 5, "蛋糕": 15]
var menu3 = ["钢笔": 20, "文件袋": 10, "打印机": 500]

// 定义下单情况字典
var mymenu: [String: Int] = [:]

// 无限循环
var user = ""
while user != "y" { // 当用户输入不是'y'时循环执行
    print("请选择商品类别:")
    print("1:家用品")
    print("2:食品")
    print("3:办公用品")
    print("输入 y 退出")
    
    user = readLine() ?? "" // 读取用户输入的值
    
    switch user {
    case "1": // 用户选择家用品
        print("家用品菜单:\(menu1)")
        print("请输入要购买的商品名称:")
        let item1 = readLine() ?? "" // 读取用户输入的家用品名称
        if let price = menu1[item1] { // 检查该商品是否在家用品菜单中
            print("您选择的商品是:\(item1),价格为:\(price)")
            print("请输入购买数量:")
            if let numb = Int(readLine() ?? "0") { // 读取用户输入的购买数量
                mymenu[item1] = numb // 将购买数量保存到个人点单信息字典中
            }
        } else {
            print("对不起,该商品不存在。")
        }
    case "2": // 用户选择食品
        print("食品菜单:\(menu2)")
        print("请输入要购买的商品名称:")
        let item2 = readLine() ?? "" // 读取用户输入的食品名称
        if let price = menu2[item2] { // 检查该商品是否在食品菜单中
            print("您选择的商品是:\(item2),价格为:\(price)")
            print("请输入购买数量:")
            if let numb = Int(readLine() ?? "0") { // 读取用户输入的购买数量
                mymenu[item2] = numb // 将购买数量保存到个人点单信息字典中
            }
        } else {
            print("对不起,该商品不存在。")
        }
    case "3": // 用户选择办公用品
        print("办公用品菜单:\(menu3)")
        print("请输入要购买的商品名称:")
        let item3 = readLine() ?? "" // 读取用户输入的办公用品名称
        if let price = menu3[item3] { // 检查该商品是否在办公用品菜单中
            print("您选择的商品是:\(item3),价格为:\(price)")
            print("请输入购买数量:")
            if let numb = Int(readLine() ?? "0") { // 读取用户输入的购买数量
                mymenu[item3] = numb // 将购买数量保存到个人点单信息字典中
            }
        } else {
            print("对不起,该商品不存在。")
        }
    case "y": // 用户选择退出
        break
    default: // 用户输入无效
        print("输入有误,请重新输入。")
    }
}

// 打印小票
print("===========小票===========")
print("名称\t数量\t*\t单价\t=\t价格")
var s = 0 // 总花费
for (item, numb) in mymenu { // 遍历个人点单信息字典
    if let price = menu1[item] ?? menu2[item] ?? menu3[item] { // 根据商品名称从三个菜单中查找对应的价格
        let totalPrice = price * numb // 计算每种商品的总价
        print("\(item)\t\(numb)\t*\t\(price)\t=\t\(totalPrice)") // 输出商品名称、数量、单价、总价
        s += totalPrice // 将每种商品的总价累加到总花费中
    }
}

// 输出总价和致谢信息
print("总价:\(s)")
print("谢谢惠顾,祝您生活愉快!")