我怎么能写(userInput >= "50")正确

本文关键字:quot 正确 怎么能 userInput | 更新日期: 2023-09-27 18:02:26

我的意思是"如果用户输入的数字大于50,那么…"我怎样才能正确地写出来呢?因为这个错误出现在Visual Studio中:

操作符'>='不能应用于'string'和'string'类型的操作数

Console.Write("Enter a number: ");
        string userInput = Console.ReadLine();
        string message = (userInput >= "50") ? "Your number is greater than 50" : "You number is less than 50";
        Console.WriteLine(message);
        Console.ReadLine();

我怎么能写(userInput >= "50")正确

字符串不是数字,所以解析它:

int userInputNum = 0;
string userInput = Console.ReadLine();
if (int.TryParse(userInput, out userInputNum))
{
    string message = (userInputNum > 50) ? "Your number is greater than 50" : "You number is less than 50";
    Console.WriteLine(message);
}
else
{
    //Junk user input
}

请注意,您可以使用int.Parse,但如果用户输入非数字,它将抛出。第二个参数中的out关键字强制被调用的函数在返回之前填充该参数(使用它是因为TryParse的签名调用它)。此外,您的逻辑大于或等于 50。以上代码严格大于。

您的原始代码不起作用,因为您正在将用户输入与字符串进行比较(因此"不能应用于类型'string'和'string'"的操作数),因为您已将其与"50"进行了比较。字符串不能"大于"或"小于"另一个字符串,只能"等于"(==)或"不等于"(!=)

更具体地说,>操作符没有在string上定义,因此不能用于比较它们中的两个

change this

 string userInput = Console.ReadLine();

 var userInput = Convert.ToInt32(Console.ReadLine());

and (userInput>= "50") to

(userInput >= 50)

去掉引号

您已经将值存储在一个字符串变量中。因此,您应该将其转换为int,以便进行比较。

Console.Write("Enter a number: ");
    string userInput = Console.ReadLine();
    string message = (Convert.ToInt32(userInput) >= 50) ? "Your number is greater than 50" : "You number is less than 50";
    Console.WriteLine(message);
    Console.ReadLine();