我的意思是说"如果用户输入的数字大于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();
答案 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();