C#简单的程序错误。无法获取控制台以处理我的else语句请求
我使用Try.Parse确保程序只拾取整数。当我输入一个整数时,它工作并进入程序的下一部分,但当我输入一个十进制数时,它会像它应该的那样将程序带到else语句,其中它说小数无效并要求输入一个整数。因此,当我运行程序并输入整数时,它只会不断要求越来越多的整数,而不会接受我刚刚输入的整数。所以在输入一个小数点后,我就到了。然后我输入一个整数,它会不断重播我对另一个整数的请求 我刚刚开始编写代码,所以请原谅我,如果这是非常基本的,但我不能绕着它转。我希望计算机接收并处理我输入的整数,然后转到下一条语句C#简单的程序错误。无法获取控制台以处理我的else语句请求,c#,C#,我使用Try.Parse确保程序只拾取整数。当我输入一个整数时,它工作并进入程序的下一部分,但当我输入一个十进制数时,它会像它应该的那样将程序带到else语句,其中它说小数无效并要求输入一个整数。因此,当我运行程序并输入整数时,它只会不断要求越来越多的整数,而不会接受我刚刚输入的整数。所以在输入一个小数点后,我就到了。然后我输入一个整数,它会不断重播我对另一个整数的请求 我刚刚开始编写代码,所以请原谅我,如果这是非常基本的,但我不能绕着它转。我希望计算机接收并处理我输入的整数,然后转到下一条语句
解释一下真的很有帮助!先谢谢你 您需要在循环内更新
结果
和输入成本
while (!result)
{
Console.Write("Please Enter A Valid Integer Value");
Console.WriteLine();
inputcost = Console.ReadLine();
result = int.TryParse(inputcost, out validcost);
}
Console.Write("Valid Value");
inputcost的值在代码中只设置一次。您需要在while循环中更新它 请参见while循环中的false子句: 静态void Main(字符串[]参数) {
inputcost
永不更改。好的,您正在调用int.TryParse()使用相同的参数连续两次。第一次,将返回值保存为result
。然后将其作为while
的条件调用。如果result
为false,则while的主体将永远不会执行。检查result
为false的唯一其他位置是while循环内,您确保在这种情况下不会发生这种情况。您还可以编写if(result)
而不是if(result==true)
。如果result
为false,您认为在执行循环块时会执行多少次?
string inputcost;
string inputmoney;
int validcost;
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("Please Enter A Valid Integer Value");
Console.WriteLine();
inputcost = Console.ReadLine();
}
}