我在C#非常新,我只想在这里尝试一些代码。
但它没有用。我不明白为什么。我在Visual Studio上没有任何错误。 它只是不正常。我alwasy说“你写了一个更高的数字。”然后关闭。
你能帮助我吗?
你可以理解我想要做的事情。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int number = 4 ;
Console.WriteLine("Hello");
Console.WriteLine("Write a number from 1 to 10 : ");
int x = Console.Read();
if ( x < number )
Console.WriteLine("You write a lower number.");
else if ( x > number )
Console.WriteLine("You write a higher number.");
else
Console.WriteLine("True");
Console.Read();
}
}
}
答案 0 :(得分:6)
只读读取下一个字符。
您想使用Console.ReadLine并使用int.Parse或int.TryParse将字符串转换为整数。
int x = int.Parse(Console.ReadLine());
另外,我认为Read会从数字0-9开始工作。始终输出You write a higher number
的原因是因为它比较character value而不是数值,因为Read返回字符的十进制表示。
如果必须使用Read,则必须从字符值中获取数值,如下所示:
int x = Console.Read();
int numericalX = (int)char.GetNumericValue((char)x);
另外,和其他人一样,我建议在给定输入不是有效积分值的情况下使用int.TryParse
而不是int.Parse
。 int.TryParse
返回一个布尔值,指示转换是否成功,并将转换后的整数值作为out参数输出。
答案 1 :(得分:2)
因为Console.Read()
返回字符而不是数字。您可能需要ReadLine
,然后拨打int.TryParse
。
答案 2 :(得分:0)
您应该做的第一件事是验证x
的值。 Console.Read()
会返回char
值,该值可以隐式投放到int
中。因此,如果您键入3,则x
的值将为51。