如何正确使用if语句?

时间:2009-03-14 06:00:45

标签: c#

由于if语句中的第一行,我无法运行此命令。我确信有些东西需要转换,但我不确定是什么。

我的代码:

using System;
using System.Collections.Generic;
using System.Text;

namespace xx
{
    class Program
    {
        static void Main(string[] args)
        {

           string userInput;
            Console.Write("what number do you choose: ");
            userInput = Console.ReadLine();

            if (userInput > 100)
                Console.WriteLine("I hate myself");
            else
                Console.WriteLine("I love myself");


        }
    }
}

2 个答案:

答案 0 :(得分:18)

userInput是一个字符串,您正在尝试将其与int(100)进行比较。用户输入需要先转换为int。

int i;

// TryParse() returns true/false depending on whether userInput is an int

if (int.TryParse(userInput, out i))
{
    if (i > 100)
    {
        Console.WriteLine("I hate myself");
    }
    else
    {
        Console.WriteLine("I love myself");
    }
}
else
{
    Console.WriteLine("Input was not a valid number.");
}

答案 1 :(得分:3)

尝试if (Int32.Parse(userInput) > 100)
您正在尝试将Console.ReadLine()返回的字符串与整数进行比较 - 这就是编译器瘫痪的原因。

虽然是一种更强大的方法..现在我想到的就是使用Integer.TryParse

int parsedInt;
bool bResult = Int32.TryParse(stringToParse, out parsedInt)

仅当转换/解析操作成功时,bResult才会成立。这将处理恶意输入。如果成功,out参数包含您需要的整数值。