C#简单的程序错误。无法获取控制台以处理我的else语句请求

C#简单的程序错误。无法获取控制台以处理我的else语句请求,c#,C#,我使用Try.Parse确保程序只拾取整数。当我输入一个整数时,它工作并进入程序的下一部分,但当我输入一个十进制数时,它会像它应该的那样将程序带到else语句,其中它说小数无效并要求输入一个整数。因此,当我运行程序并输入整数时,它只会不断要求越来越多的整数,而不会接受我刚刚输入的整数。所以在输入一个小数点后,我就到了。然后我输入一个整数,它会不断重播我对另一个整数的请求 我刚刚开始编写代码,所以请原谅我,如果这是非常基本的,但我不能绕着它转。我希望计算机接收并处理我输入的整数,然后转到下一条语句

我使用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();
        }

    }