嗨我的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;
答案 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)