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

C#中如何使用同一个变量分别接收字符串输入和整型输入

解决方案

错误原因

代码的核心问题是没有对输入内容做分支判断,不管用户输入的是数字还是退出指令,都直接执行Convert.ToInt32转换,当输入为OK/ok这类非数字字符串时,自然会触发格式错误异常。

修正后代码

string input = "";
int sum = 0;
do
{
    Console.WriteLine("Insert the number or OK (ok) for exit: ");
    input = Console.ReadLine();
    
    // 优先判断是否为退出指令,忽略大小写匹配
    if (input.Equals("OK", StringComparison.OrdinalIgnoreCase))
    {
        break;
    }
    
    // 安全转换整型,转换成功才执行累加
    if (int.TryParse(input, out int number))
    {
        sum += number;
    }
    else
    {
        // 可选:非法输入提示
        Console.WriteLine("输入无效,请输入数字或者OK/ok退出");
    }

} while (true);

Console.WriteLine($"累加和为:{sum}");

逻辑说明

  • 读取输入后优先判断是否为退出指令,使用StringComparison.OrdinalIgnoreCase参数可以直接匹配大小写的ok,无需写两个判断条件
  • 用int.TryParse替代Convert.ToInt32做类型转换,该方法不会抛出异常,转换成功返回true同时把结果传给输出参数,失败返回false,完美适配输入内容不确定的场景
  • 循环条件直接设为true,触发退出指令时主动break即可,逻辑更简洁清晰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:27:04