如果其他声明不起作用

时间:2014-02-10 05:12:36

标签: c# if-statement

嗨我的If语句由于某种原因不能工作我希望它说无效如果用户低于0或超过100但我输入的每个数字直接转到我的else语句甚至没有注意到我的if语句。

我做错了什么?

        g:
        Console.WriteLine("Enter Grade: ");
        int grade = Convert.ToInt32(Console.Read());
        if (grade < 0 || grade > 100)
        {
            Console.WriteLine("Input Valid");
            Console.ReadLine();
        }
        else
        {
            Console.WriteLine("Input invalid");
            Console.ReadLine();
        }
        goto g;

3 个答案:

答案 0 :(得分:7)

if / else在这里不是问题。您从用户那里获得输入的方式是。

使用Console.ReadLine()代替Console.Read()

int grade = Convert.ToInt32(Console.ReadLine());

Console.Read从控制台返回第一个字符的数字表示(ACII代码),而不是您自己输入的数字。

答案 1 :(得分:4)

更改您的阅读声明如下:

int grade = Convert.ToInt32(Console.ReadLine());

Console.Read()返回您键入的ASCII码,而Console.ReadLine()返回一个字符串。

答案 2 :(得分:4)

您可能需要做一些更改:

int grade = Convert.ToInt32(Console.ReadLine());

并将您的条件更改为&&

if (grade >= 0 && grade <= 100)