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

C#实现加法运算时出现字符串拼接(1+1输出11)问题求助

问题根因

你把参与运算的两个数字、最终结果全部定义成了string字符串类型。C# 中两个字符串使用+运算符时,执行的是文本拼接逻辑,不是数值加法:输入1和1时,两个字符串"1"和"1"拼接自然得到"11",不会算出数值结果2。
你当前代码还有几个会影响运行的逻辑漏洞:

  • 存储用户输入命令的enteredCommand变量没有赋值入口,程序启动后直接判断,永远进不了doMath的功能分支
  • 没有做输入合法性校验,用户输入非数字内容时程序会直接抛出异常崩溃
  • 你之前测试的+=运算符如果作用在字符串类型上,效果同样是拼接,只有作用在数值类型上时才会实现累加效果
修复步骤
  • 参与数值运算的变量不要用string类型,改用int(整数)或double(浮点数,支持小数)类型
  • 读取用户输入的数字内容后,先把字符串格式的输入转成数值类型,再执行加法运算
  • 补上用户输入命令的读取逻辑,让doMath命令可以被正常触发
  • 增加基础的输入校验,非法输入时给出提示而不是直接崩溃
修复后的完整代码
namespace Game
{
    public static class Program
    {
        // 命令定义
        public static string enteredCommand;
        public static string commanddomath = "doMath";

        static void Main()
        {
            // 读取用户输入的命令
            Console.WriteLine("Please enter command:");
            enteredCommand = Console.ReadLine()?.Trim();
            
            if (enteredCommand == commanddomath)
            {
                Console.WriteLine("Ok");
                Console.WriteLine("What Operation should I do?");
                string mathOperation = Console.ReadLine()?.Trim();
                
                if (mathOperation == "+")
                {
                    Console.WriteLine("Addition! Easy! What is the first number? ex. 6");
                    string firstInput = Console.ReadLine()?.Trim();
                    Console.WriteLine("Ok, what do you want the second number to be? ex. 8");
                    string secondInput = Console.ReadLine()?.Trim();

                    // 校验输入是否为合法数字,转换为数值类型后计算
                    if (double.TryParse(firstInput, out double firstNum) && double.TryParse(secondInput, out double secondNum))
                    {
                        double finalAnswer = firstNum + secondNum;
                        Console.WriteLine($"Ok! The answer is... {finalAnswer}");
                    }
                    else
                    {
                        Console.WriteLine("Input invalid, please enter valid numbers.");
                    }
                }
                // 减法、乘法、除法等其他运算可以在这里新增分支扩展
            }
            else
            {
                Console.WriteLine("That is not a command");
            }

            Console.ReadKey();
        }
    }
}
补充提示
  • 原代码里的变量名FinalAwnser存在拼写错误,正确拼写为FinalAnswer,后续开发注意变量名拼写一致性,避免因为拼写错误引发不必要的bug
  • 所有需要做数学运算的值,必须先转为数值类型再操作,不要直接对字符串做算术运算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 22:24:23