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

C#控制台应用程序在执行if语句前崩溃的问题求助

问题排查与解决方案:C#控制台程序在if语句前异常行为

嘿,我来帮你搞定这个问题!你的程序看起来“崩溃”的核心原因其实是对Console.Read()的用法理解有误,咱们一步步理清楚:

问题根源

  • Console.Read()返回的是字符的ASCII码,不是输入的数字:当你输入1并按下回车时,Console.Read()拿到的是字符'1'对应的ASCII值(也就是49),而不是整数1。这直接导致你的if (UserInput1 == 1)条件永远不成立,后续的代码逻辑完全偏离预期。
  • 输入缓冲区残留控制字符:输入完数字后按下的回车(ASCII 13)和换行(ASCII 10)会留在输入流里,后续的Console.Read()会直接读取这些控制字符,而不是等待用户输入新内容,这会让程序看起来像是“崩溃”或者跳过了输入步骤。

修复方案

改用Console.ReadLine()读取完整的输入行,再配合int.TryParse()进行安全的类型转换,同时添加输入验证确保用户输入有效。下面是修正后的代码:

static void Main(string[] args)
{
    Console.ForegroundColor = ConsoleColor.Green;
    Console.WriteLine("1. SHC ");
    
    // 读取用户选择并验证
    string selectionInput = Console.ReadLine();
    if (int.TryParse(selectionInput, out int userInput1) && userInput1 == 1)
    {
        // 读取质量,确保输入有效
        Console.WriteLine("Mass (kg): ");
        while (!int.TryParse(Console.ReadLine(), out int shcMass))
        {
            Console.WriteLine("请输入有效的整数质量,请重试:");
        }
        
        // 读取比热容
        Console.WriteLine("Specific Heat Capacity (J/Kg/°C): ");
        while (!int.TryParse(Console.ReadLine(), out int shcValue))
        {
            Console.WriteLine("请输入有效的整数比热容,请重试:");
        }
        
        // 读取温差
        Console.WriteLine("Temperature Difference (△Ø): ");
        while (!int.TryParse(Console.ReadLine(), out int shcTempDiff))
        {
            Console.WriteLine("请输入有效的整数温差,请重试:");
        }
        
        // 计算并输出结果
        int shcFinal = shcMass * shcValue * shcTempDiff;
        Console.WriteLine($"Energy: {shcFinal}");
    }
    else
    {
        Console.WriteLine("无效的选择,请输入数字1来进行SHC计算");
    }
    
    // 暂停窗口,方便查看结果
    Console.WriteLine("按任意键退出...");
    Console.ReadLine();
}

关键修正点说明

  1. 替换Console.Read()为Console.ReadLine():读取完整的输入行,避免控制字符残留影响后续输入。
  2. 使用int.TryParse()安全转换:防止用户输入非数字内容导致的格式异常,同时验证输入的有效性。
  3. 添加输入验证循环:如果用户输入无效,会提示重新输入,提升程序的健壮性。
  4. 添加窗口暂停逻辑:程序运行结束后不会直接关闭控制台窗口,方便查看计算结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:18:42