如何正确编写(userInput> =" 50")?

时间:2015-07-14 00:12:16

标签: c#

我的意思是说"如果用户输入的数字大于50,那么......" 我该怎么写得好呢?因为此错误显示在Visual Studio中:

运营商'> ='不能应用于' 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();

3 个答案:

答案 0 :(得分:9)

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

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上定义,因此不能用于比较其中两个。

答案 1 :(得分:1)

更改此

 string userInput = Console.ReadLine();

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

和(userInput> =" 50")到

(userInput >= 50)

只需删除qoutations

答案 2 :(得分:0)

您已将值存储在字符串变量中。因此,您应该将其转换为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();