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();
        }
    }
}

c# Noob寻找小帮助:为什么这个小代码不起作用

只读下一个字符。

您想要使用控制台。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.Parseint.TryParse返回一个布尔值,指示转换是否成功,并将转换后的整数值作为输出参数输出。

这是因为Console.Read()返回的是字符,而不是数字。可能你想要一个ReadLine,然后调用int.TryParse

首先要做的是验证x的值。Console.Read()返回一个char值,该值可以隐式地转换为int。所以如果你输入3,x的值将是51。