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

如何在C#中验证用户输入?需校验1-10的数字(含英文表述)

实现1-10数字输入验证的C#代码修正与讲解

你需要实现的功能是让用户输入1-10之间的数字(支持英文单词或阿拉伯数字)并验证输入是否有效,下面先指出你原代码里的问题,再给出完整的可运行代码和关键部分的讲解:

原代码的问题

  • 拼写错误:Console.Writeline应该改为Console.WriteLine(C#区分大小写)
  • 语法不完整:缺少switch关键字,变量声明格式错误,case只写了部分数字的英文,也没有处理无效输入的分支
  • 输出逻辑错误:不管输入哪个有效数字,输出内容都是所有数字的列表,不符合需求

修正后的完整代码

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("请输入1-10之间的数字(可以是英文单词或阿拉伯数字):");
        string input = Console.ReadLine().Trim().ToLower();

        bool isValid = false;
        int number = 0;

        // 匹配英文单词输入
        switch (input)
        {
            case "one":
                number = 1;
                isValid = true;
                break;
            case "two":
                number = 2;
                isValid = true;
                break;
            case "three":
                number = 3;
                isValid = true;
                break;
            case "four":
                number = 4;
                isValid = true;
                break;
            case "five":
                number = 5;
                isValid = true;
                break;
            case "six":
                number = 6;
                isValid = true;
                break;
            case "seven":
                number = 7;
                isValid = true;
                break;
            case "eight":
                number = 8;
                isValid = true;
                break;
            case "nine":
                number = 9;
                isValid = true;
                break;
            case "ten":
                number = 10;
                isValid = true;
                break;
            default:
                // 尝试解析阿拉伯数字输入
                if (int.TryParse(input, out number))
                {
                    isValid = number >= 1 && number <= 10;
                }
                break;
        }

        // 根据验证结果输出信息
        if (isValid)
        {
            Console.WriteLine($"你选择的数字是:{number}");
        }
        else
        {
            Console.WriteLine("输入无效,请输入1-10之间的阿拉伯数字或对应的英文单词!");
        }
    }
}

关键部分讲解

  • Console.ReadLine().Trim().ToLower():获取用户输入后,先去掉前后的空格,再转为小写,这样不管用户输入" One "还是"ONE",都能正确匹配
  • switch语句:专门处理英文单词输入,每个case对应一个数字的英文,匹配成功后就把对应的阿拉伯数字赋值给number,并标记输入有效
  • int.TryParse:如果用户输入的不是英文单词,就尝试把输入转为整数,这个方法不会因为输入非数字而报错,转换成功后再判断数字是否在1-10之间
  • 有效性判断:最后根据isValid的布尔值,告诉用户输入是否有效,有效就显示对应的数字,无效就提示正确的输入规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 20:58:32