我怎么能写(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();
字符串不是数字,所以解析它:
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();