c#不能在一个循环中运行两个函数
本文关键字:运行 两个 函数 循环 不能 一个 | 更新日期: 2023-09-27 18:14:18
我想做的是让它在一个循环中,计算机检查输入的数字是否首先不是小数,同时我想确保数字在1 - 100的范围内。我的代码现在可以工作了,因为第一个函数的数字不是小数,所以当我输入一个小数时,会显示一条错误消息,告诉用户继续添加另一个数字,直到添加一个整数,然后运行到下一部分。然而,当我输入范围之外的数字时,它似乎不起作用,错误信息不会弹出,条件似乎不起作用。我想知道的是如何让这两部分,小数和范围检查同时工作。我对编码真的很陌生,所以任何解释都可以简单,这样我就能理解了。提前感谢!
string inputcost;
string inputmoney;
int validcost;
int validmoney;
int changereq;
Console.Write("Please Enter The Cost, In Pennies, Of The Item You Have Purchased: ");
inputcost = Console.ReadLine();
bool result = int.TryParse(inputcost, out validcost);
while (!int.TryParse(inputcost, out validcost))
{
if (result == true )
{
Console.Write("Valid Value");
}
if (result == false)
{
Console.Write("You Cannot Enter Decimals. Please Enter A Valid Integer Value.");
Console.WriteLine();
inputcost = Console.ReadLine();
}
if (validcost < 100 && validcost > 1)
{
Console.Write("valid value");
}
else
{
Console.Write("invalid value.please enter a number between 1 and 100 ");
Console.ReadLine();
}
}
while (!int.TryParse(inputcost, out validcost))
表示只有在用户键入不能转换为整数的内容时才进入while循环。如果它是一个有效的整数,则永远不会到达while循环中的代码,因此,对有效范围的测试永远不会执行
相反,把所有东西都放在一个无限循环中,并提供一种方法来中断程序(输入x退出)
while (true)
{
Console.Write("Please Enter The Cost, In Pennies, Of The Item You Have Purchased: (type x to quit)");
inputcost = Console.ReadLine();
// Check if the user wants to stop executing the program
if(inputcost == "x")
break;
// Check if it is a valid integer
bool result = int.TryParse(inputcost, out validcost);
if (!result)
{
Console.WriteLine("You Cannot Enter Decimals (or strings). Please Enter A Valid Integer Value.");
}
else if (validcost > 100 || validcost < 1)
{
Console.WriteLine("invalid value.please enter a number between 1 and 100 ");
}
else
{
Console.WriteLine("Valid value");
// other code block that works with the input number....
}
}
或者为循环使用另一个条件,首先检查整数,然后检查它是否在范围内:
while (!int.TryParse(inputcost, out validcost)) || validCost < 1 || validCost > 100)
{
Console.WriteLine("Please enter an integer between 1 and 100");
inputCost = Console.ReadLine();
}
所有在inout有效时应该执行的代码现在应该把放到循环之外,而不是放在循环内。