You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

输入城镇、商品、数量计算总价的代码无输出,求排查错误

排查程序无输出及功能实现问题

首先看你的问题描述:你期望输入Town1>Milk>2时输出总价2,但当前程序完全没有输出,结合你给出的不完整代码,我梳理出几个核心问题以及修复方案:

问题分析

  1. 代码不完整导致编译/运行错误
    你给出的代码里double.Parse(Console.Re...明显没写完,应该是double.Parse(Console.ReadLine()),这会直接导致代码无法正常编译运行,自然不会有任何输出。

  2. 输入逻辑与预期不符
    你预期的是单次输入城镇>商品>数量的格式,但当前代码是分三次分别输入商品、城镇、数量,这和你的使用场景不匹配,就算代码写完,输入方式也不对。

  3. 缺少总价计算与输出逻辑
    原代码里完全没有根据城镇和商品获取单价、计算总价并输出的部分,就算输入都正确,也不会有任何结果输出。

修复后的完整代码

下面是符合你需求的完整代码,我添加了价格映射逻辑,以及正确的输入处理和输出:

Console.Write("Enter input (format: Town>Product>Quantity): ");
var input = Console.ReadLine()?.ToLower();

if (string.IsNullOrEmpty(input))
{
    Console.WriteLine("Invalid input!");
    return;
}

// 分割输入内容
var parts = input.Split('>');
if (parts.Length != 3)
{
    Console.WriteLine("Input format error! Please use Town>Product>Quantity.");
    return;
}

var town = parts[0].Trim();
var product = parts[1].Trim();
if (!double.TryParse(parts[2].Trim(), out var quantity))
{
    Console.WriteLine("Quantity must be a valid number!");
    return;
}

// 定义城镇-商品的单价映射(你可以根据需求扩展)
var priceMap = new Dictionary<string, Dictionary<string, double>>
{
    { "town1", new Dictionary<string, double> { { "milk", 1.0 }, { "bread", 2.5 } } },
    { "town2", new Dictionary<string, double> { { "milk", 1.2 }, { "bread", 2.7 } } }
};

// 查找单价并计算总价
if (priceMap.TryGetValue(town, out var townPrices) && townPrices.TryGetValue(product, out var unitPrice))
{
    var totalPrice = unitPrice * quantity;
    Console.WriteLine(totalPrice); // 对应例子输入Town1>Milk>2时,输出2
}
else
{
    Console.WriteLine("Town or product not found!");
}

关键修复点说明

  • 统一输入处理:改用单次输入并通过Split('>')分割,匹配你期望的输入格式
  • 错误处理:添加了输入为空、格式错误、数量无效的判断,避免程序崩溃
  • 价格映射:用嵌套字典存储不同城镇的商品单价,方便后续扩展更多城镇和商品
  • 明确输出:计算完成后通过Console.WriteLine输出总价,这是原代码完全缺失的核心步骤

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

火山引擎 最新活动