试图创建一个“;如果“;语句,这样如果字符串大于int,它就会显示一条消息

本文关键字:如果 大于 字符串 int 一条 消息 显示 语句 创建 一个 | 更新日期: 2023-09-27 18:29:50

我正在创建一个随机数猜测游戏,这样就生成了一个随机数字,用户必须猜测这个数字,如果他们猜测的数字低于这个数字,那么他们就可以再次猜测,如果他们在上面猜测,直到他们猜到正确的数字。P.S我还尝试了int.Parse将用户输入的字符串更改为数字,但仍然得到了"运算符"<"不能应用于类型为"string"answers"int"的操作数

我试图在c中创建一个"if"语句,这样,如果一个字符串(用户输入的数字)大于一个int(随机生成的数字),它就会告诉他们再次猜测。但如上所述,我在使用"小于"answers"大于"符号时出现错误。

提前谢谢。

using System;
namespace randomNumberGenerator
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            Random random = new Random ();
            int randomNumber = random.Next (0, 100);
            Console.WriteLine ("Guess The Number I Am Thinking");
            string usernumber = Console.ReadLine ();
            int.Parse (usernumber);
            if (usernumber < randomNumber)
                Console.WriteLine ("No");
        }
    }
}

试图创建一个“;如果“;语句,这样如果字符串大于int,它就会显示一条消息

int.Parse (usernumber);将返回一个整数值,它不会修改字符串usernumber或将其类型更改为integer。你需要

int number;
number = int.Parse(usernumber);
if(number < randomNumber)
{
    Console.WriteLine("No");
}

如果您使用int.TryParse也会更好,在用户输入非数字字符串值的情况下,它不会引发异常。

Parse返回一个int,但不会修改您传递给它的变量。因此,您需要一个新的变量

var number = int.Parse (usernumber);
if (number < randomNumber)

您的错误基本上表明您无法比较不同类型的变量(在本例中为stringint)。编译器不知道你的字符串是否真的可以被解释为数字。

你也可以使用TryParse,

int number;
var validNumber = int.TryParse(usernumber, out number);
if (!validNumber)
{
    Console.WriteLine("Please choose a number. Bye...");
    return;
}
if (number < randomNumber)
    Console.WriteLine("No");

您需要分配变量,并且您可能希望检查用户输入实际上是一个数字。int.TryParse(string s,out int x)方法将适用于此。这是代码:

int userInput;
bool isNumber = int.Tryparse(usernumber, out userInput);
if( isNumber && userInput < randomNumber)
{
  Console.WriteLine("No");
}
else if(!isNumber)
{
  Console.WriteLine("Please enter a valid integer");
}