如何在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
相关产品推荐
相关产品推荐

