【问题标题】:C# how to limit numerical input to a single digit [duplicate]C#如何将数字输入限制为单个数字[重复]
【发布时间】:2015-07-10 01:28:33
【问题描述】:

抱歉,这对于 C# 新手来说可能很容易,我需要将此处的输入限制为一位数。

 int value, value1, value2, value3, value4;
 int resultFinal, resultFirst, resultSecond, resultThird = 0;

        Console.WriteLine("Enter five single digit numbers");

        value = Convert.ToInt16(Console.ReadLine());
        value1 = Convert.ToInt16(Console.ReadLine());            
        value2 = Convert.ToInt16(Console.ReadLine());
        value3 = Convert.ToInt16(Console.ReadLine());
        value4 = Convert.ToInt16(Console.ReadLine());


        resultFirst = value - value1;
        resultSecond = value2 - value3;      
        resultThird = resultFirst + resultSecond;
        resultFinal = resultThird + value4;
        Console.WriteLine("Answer: {0}", resultFinal);
        Console.WriteLine("Press any button to close");
        Console.ReadLine();

【问题讨论】:

  • 你不能通过Console.ReadLine()来限制返回的字符串。您应该编写代码来检查它。

标签: c# integer digit


【解决方案1】:
Console.WriteLine("Enter five single digit numbers");
List<int> list = new List<int>();
do
{
    var keyNumber = (int)Console.ReadKey(true).KeyChar;
    if (keyNumber >= 48 && keyNumber <= 57)
    {
        Console.WriteLine("Your input number is:" + (char)keyNumber);
        list.Add(keyNumber-48);
    }
    else
    {
        Console.WriteLine("Sorry, but please enter single digit numbers!");
    }
}
while (list.Count < 5);
var resultFirst = list[0] - list[1];
var resultSecond = list[2] - list[3];
var resultThird = resultFirst + resultSecond;
var resultFinal = resultThird + list[4];
Console.WriteLine("Answer: {0}", resultFinal);
Console.WriteLine("Press any button to close");
Console.ReadLine();

因为你只是想让用户输入个位数,我觉得Console.ReadKey(true)更好

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    相关资源
    最近更新 更多