我想让用户输入2-12的号码。我想使用一个循环来检查是否有效,但是我只是在显示结果一次时遇到了麻烦。
Console.WriteLine("Enter number between 2 and 12");
int x = int.Parse(Console.ReadLine());
bool isValid = true;
for(int p = 2; p < 13; p++)
{
if(p > x)
{
isValid = true;
}
else
isValid = false;
if(isValid == true)
{
Console.WriteLine("{0} is good", x);
}
else
Console.WriteLine("not valid");
}
答案 0 :(得分:1)
为什么需要循环来检查范围内的值?
试试这个
if(x>=2 && x<=12)
Console.WriteLine("{0} is good", x);
else
Console.WriteLine("not valid");
答案 1 :(得分:1)
为什么要为此使用循环?
您可以通过以下方式检查数字是否在2到12之间:
int x = int.Parse(Console.ReadLine());
bool isValid = true;
if (x < 2 || x > 12)
{
isValid = false;
}
否则,如果您仍想进行循环,可以试试这个:
Console.WriteLine("Enter a number between 2 and 12");
int x = int.Parse(Console.ReadLine());
bool isValid = false;
for(int p=2; p<13; p++)
{
if(x == p)
{
isValid = true;
break;
}
}
if(isValid==true)
{
Console.WriteLine("{0} is good", x);
}
else
{
Console.WriteLine("not valid");
}
修改强>
也只是一个建议,但你应该小心使用Parse
。如果您使用Parse
并且用户输入了非数字字符或输入的数字大于/小于int
的允许值,则您的应用将停止,并显示FormatException
错误。
要解决此问题,您可以使用TryParse
代替:
int x;
bool result = int.TryParse(Console.ReadLine(), out x);
if (result)
{
// Put your for loop or if statement here
}
else
{
Console.WriteLine("Error: Invalid number was detected.");
}
答案 2 :(得分:0)
如果您尝试验证该号码是否在2-12范围内,则应移除您的循环并使用此代码
bool isValid = true;
if (x < 2 || x > 12) {
isValid = false;
}
或只是
bool isValid = x >= 2 && x <= 12;
答案 3 :(得分:0)
你想要达到什么目的?上面的示例逻辑中存在一个缺陷,您只需要询问一次,然后循环10
次。为了简化,您可以循环,然后询问用户输入,直到输入0
并且循环将退出。
样品:
static void Main(string[] args)
{
int x = 0;
do
{
Console.WriteLine("Enter number between 2 and 12. (0 to exit)");
x = int.Parse(Console.ReadLine());
if (x >= 2 && x <= 12)
{
Console.WriteLine("{0} is good", x);
}
else if(x != 0)
{
Console.WriteLine("{0} is not valid", x);
}
} while (x != 0);
}
答案 4 :(得分:0)
Console.WriteLine("Enter number between 2 and 12: ");
int x = int.Parse(Console.ReadLine());
bool isValid = (2 <= x && x <= 12);
Console.WriteLine("{0} is {1}valid", x, isValid ? "" : "not ");
答案 5 :(得分:0)
这里试试这个
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("Enter number between 2 and 12");
int x = int.Parse(Console.ReadLine());
if (!Enumerable.Range(1, 12).Contains(x))
{
Console.WriteLine("{0} Its not Good\n",x);
}
else
{
Console.WriteLine("{0} Its Good\n",x);
break;
}
}
Console.WriteLine("Press any key to exit..");
Console.ReadKey();
}