c# Noob寻找小帮助:为什么这个小代码不起作用
本文关键字:代码 不起作用 为什么 Noob 寻找 帮助 | 更新日期: 2023-09-27 18:11:30
我是c#的新手,我只是在这里尝试一点代码。
但它没有工作。我不明白为什么。我没有得到任何错误在Visual Studio。它就是不能正常工作。我总是说"你写了一个更高的数字。
你能帮我吗?
你可以理解我在做什么。
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();
}
}
}
只读下一个字符。
您想要使用控制台。ReadLine并使用int将字符串转换为整数。解析或int.TryParse.
int x = int.Parse(Console.ReadLine());
同样,我想Read也可以从0-9开始工作。You write a higher number
总是被输出的原因是因为它比较的是字符值而不是数值,因为Read返回的是字符的十进制表示。
如果必须使用Read,则必须从字符值中获取数值,如下所示:
int x = Console.Read();
int numericalX = (int)char.GetNumericValue((char)x);
此外,就像其他人建议的那样,我建议在给定输入不是有效整数值的偶然情况下使用int.TryParse
而不是int.Parse
。int.TryParse
返回一个布尔值,指示转换是否成功,并将转换后的整数值作为输出参数输出。
这是因为Console.Read()
返回的是字符,而不是数字。可能你想要一个ReadLine
,然后调用int.TryParse
。
首先要做的是验证x
的值。Console.Read()
返回一个char
值,该值可以隐式地转换为int
。所以如果你输入3,x
的值将是51。