C# 代码在调用方法后重复用户输入提示
本文关键字:复用 用户 输入 提示 代码 调用 方法 | 更新日期: 2023-09-27 18:33:32
我正在尝试制作一个程序,要求用户输入,然后在用户选择对他们的选择不满意时提供重新启动的选项。如果他们选择选项,然后在最后选择"是",则程序可以完美运行,但是如果他们选择"否",请再次选择属性,然后选择"是",系统会提示用户选择是否再次接受。该程序的内容如下:
有你的属性点!
你接受这些吗?键入 1 表示是,键入 2 表示否。如果否,您可以再次选择:
1
你接受这些吗?键入 1 表示是,键入 2 表示否。如果否,您可以再次选择:
1
按任意键继续...
这是代码:
while (true)
{
Console.Write("Do you accept these? Type 1 for Yes, Type 2 for No. If No you can choose again: ");
areYouHappyWithChoices = Console.ReadLine();
if (!UInt32.TryParse(areYouHappyWithChoices, out validChoices))
Console.WriteLine("Please try again. Enter 1 for Yes and 2 for No");
else if (validChoices > 2 || validChoices < 1)
Console.WriteLine("Please try again. Enter 1 for Yes and 2 for No");
else if (areYouHappyWithChoices == "2")
chooseAttributePoints(); //this method contains the whole routine
else
break;
}
所以,我测试了你的代码,它对我很好用。您的chooseAttributePoints()
方法中似乎有一个额外的Console.ReadLine()
,因此您必须在调用chooseAttributePoints()
后输入两次您的选择。请检查以确保这是问题所在。
言论:
我还对您的代码进行了一些重组,因此它更具可读性并且冗余更少。
int validChoices;
do
{
Console.WriteLine("do some logic ......"); // replace this line with your chooseAttributePoints() method ...
Console.Write("Do you accept these? Type 1 for Yes, Type 2 for No. If No you can choose again: ");
// read input until user gets it right and enters a valid number ...
var areYouHappyWithChoices = Console.ReadLine();
while (!int.TryParse(areYouHappyWithChoices, out validChoices) || validChoices < 1 || validChoices > 2)
{
Console.WriteLine("Please try again. Enter 1 for Yes and 2 for No");
areYouHappyWithChoices = Console.ReadLine();
}
} while (validChoices != 1);