为什么Console.Read()没有给出我期望的整数输入值?

时间:2014-07-31 20:25:17

标签: c#

出于某种原因,VSE C#2010(或者问题出现在我的笔记本电脑中)并未正确解释&lt ;,>,< =和> =布尔比较运算符。

static void Main(string[] args)
    {
        Console.WriteLine("Enter an integer:");
        int myInt = Convert.ToInt32(Console.Read());
        bool isLessThan10 = myInt < 10;
        bool isBetween0and5 = (0 <= myInt) && (myInt <= 5);
        Console.WriteLine("Integer less than 10? {0}", isLessThan10);
        Console.WriteLine("Integer between 0 and 5? {0}", isBetween0and5);
        Console.WriteLine("Exactly one of the above is true? {0}",
            isLessThan10 ^ isBetween0and5);
        Console.ReadKey();
    }

Enter an integer:
2
Integer less than 10? False
Integer between 0 and 5? False
Exactly one of the above is true? False

1 个答案:

答案 0 :(得分:7)

Console.Read读入单个字符并返回该字符的ASCII值。字符2的ASCII值不是2

你想要阅读角色并将其作为角色的表达,你可以通过Console.ReadKey使用它(正如你在程序中稍后所做的那样) )或Console.ReadLine如果你想读取被解释为这样的字符串,而不是使用Console.Read。然后,您可以使用int.Parse将数字的字符串表示转换为数字表示。