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

C#调用自定义Mosqactivity类无预期输出问题求助

C# 蚊子活动状态检测程序无输出问题排查

核心错误点

  • 输入值未正确接收:Console.ReadLine()读取的用户输入为字符串类型,代码既没有将输入转换为整数,也没有赋值给day变量,day始终为初始值0,无法匹配任何预设的年龄判断条件
  • 返回结果被连续覆盖:代码依次调用4个状态判断方法时,每次都直接对result重新赋值,前序方法返回的有效结果会被后续方法返回的空字符串覆盖
  • 无兜底逻辑:所有状态方法仅对固定年龄做等值判断,传入年龄不匹配时直接返回空字符串,无默认提示
  • 程序无暂停逻辑:输出语句执行完成后会立刻执行return 0退出进程,控制台窗口瞬间关闭,即使有输出用户也无法看到

修复后完整代码

public class Mosqactivity
{
    public string Mating(int age)
    {
        string a = "";
        if (age == 12)
        {
            a = "mosquito is in mating";
        }
        return a;
    }
    public string Blood(int age)
    {
        string b = "";
        if (age == 13 || age == 14)
        {
            b = "Searching blood";
        }
        return b;
    }
    public string Resting(int age)
    {
        string c = "";
        if (age == 15 || age == 16 || age == 17)
        {
            c = "Resting";
        }
        return c;
    }
    public string Layeggs(int age)
    {
        string d = "";
        if (age == 18 || age == 23 || age == 28)
        {
            d = "Lay Eggs";
        }
        return d;
    }
}

class Program
{
    public static int Main(string[] args)
    {
        int day = 0;
        Mosqactivity act = new Mosqactivity();
        string result = "";
        Console.WriteLine("Enter a number \n");
        
        // 读取用户输入并做合法性校验
        string input = Console.ReadLine();
        if (!int.TryParse(input, out day))
        {
            Console.WriteLine("请输入有效的整数年龄");
            Console.ReadKey();
            return 0;
        }

        // 按年龄区间顺序匹配状态,匹配到有效结果后不再覆盖
        result = act.Mating(day);
        if (string.IsNullOrEmpty(result))
            result = act.Blood(day);
        if (string.IsNullOrEmpty(result))
            result = act.Resting(day);
        if (string.IsNullOrEmpty(result))
            result = act.Layeggs(day);
        
        // 无匹配结果时的兜底提示
        if (string.IsNullOrEmpty(result))
            result = "当前年龄无对应活动状态";

        Console.WriteLine(result);
        // 等待用户按键后再退出,避免窗口直接关闭
        Console.ReadKey();
        return 0;
    }
}

运行效果

运行程序后输入对应年龄即可得到预期输出:

  • 输入12:输出 mosquito is in mating
  • 输入13或14:输出 Searching blood
  • 输入15、16、17:输出 Resting
  • 输入18、23、28:输出 Lay Eggs
  • 输入其他值:输出 当前年龄无对应活动状态

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 14:18:21