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

C#程序编译报错修复 输入负数时退出功能实现咨询

功能实现说明

完全可以实现用户输入负数时退出程序的效果,你当前的代码存在几处编译错误和逻辑问题,逐一修复即可正常运行。

现有代码的错误点

  • 变量重复定义:已经在方法开头声明了int input;,后续又写int input=Console.ReadLine();重复声明同名变量,会直接触发编译报错。
  • 类型不匹配:Console.ReadLine()方法返回值是string类型,无法直接赋值给int类型的变量。
  • 未定义集合变量:代码末尾遍历的numbers集合从未声明、初始化,也没有写入有效输入的逻辑,会触发编译错误。
  • 逻辑顺序混乱:输出输入提示后第一次读取的输入没有做任何判断、存储就被覆盖,属于无效逻辑。

修复方案

  • 提前初始化List<int>类型的numbers集合,用来存储所有用户输入的合法正整数。
  • 删除重复的input变量声明,读取用户输入后统一做类型转换。
  • 调整循环逻辑:每次读到用户输入的数值后,先判断是否为负数(如果需要0也触发退出就保留<=0判断,仅负数退出就改成<0),满足退出条件就直接跳出循环,否则将数值存入集合。
  • (可选优化)用int.TryParse代替int.Parse,避免用户输入非数字内容时程序直接崩溃。

修复后可运行代码

using System;
using System.Collections.Generic;
class Program
{
    static void Main()
    {
        // 初始化存储输入的集合
        List<int> numbers = new List<int>();
        int input;
        Console.WriteLine("Input a number (input a negative number to exit):");
        while (true)
        {
            // 读取输入并转成整数
            string readStr = Console.ReadLine();
            // 处理非数字输入的情况
            if (!int.TryParse(readStr, out input))
            {
                Console.WriteLine("Please input a valid integer!");
                continue;
            }
            // 输入负数时退出循环
            if (input < 0)
            {
                break;
            }
            // 合法正整数存入集合
            numbers.Add(input);
        }

        Console.Write("Your valid input: ");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
    }
}

如果需要输入0也触发退出,只需要把循环里的判断条件从input < 0改成input <= 0即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:57:21