[英]while loop repeating user inputs C#
在我的while循环中,它提示用户输入一个值,一旦输入值,便会使用某些方法。 我遇到的问题是,提示用户两次输入值(即要求输入A,B或X。用户输入值,然后程序再次要求输入A,B或X,而不执行正确的操作)。 输入后对其进行操作的任何帮助都将非常有用!
class output
{
static void Main(string[] args)
{
char userInput;
char upper;
Accounts myAccounts = new Accounts();
myAccounts.input();
Console.WriteLine("Enter an A to search account numbers");
Console.WriteLine("Enter a B to average the accounts");
Console.WriteLine("Enter X to quit the program");
Console.WriteLine("Enter an option --->");
userInput = Convert.ToChar(Console.ReadLine());
upper = char.ToUpper(userInput);
while (upper != 'X')
{
if (upper == 'A')
{
myAccounts.search();
Console.WriteLine("Enter an A to search account numbers");
Console.WriteLine("Enter a B to average the accounts");
Console.WriteLine("Enter X to quit the program");
Console.WriteLine("Enter an option --->");
userInput = Convert.ToChar(Console.ReadLine());
upper = char.ToUpper(userInput);
}
else if (upper == 'B')
{
myAccounts.average();
Console.WriteLine("Enter an A to search account numbers");
Console.WriteLine("Enter a B to average the accounts");
Console.WriteLine("Enter X to quit the program");
Console.WriteLine("Enter an option --->");
userInput = Convert.ToChar(Console.ReadLine());
upper = char.ToUpper(userInput);
}
else
Console.WriteLine("You entered an incorrect option, please select new option");
Console.WriteLine("Enter an A to search account numbers");
Console.WriteLine("Enter a B to average the accounts");
Console.WriteLine("Enter X to quit the program");
Console.WriteLine("Enter an option --->");
userInput = Convert.ToChar(Console.ReadLine());
upper = char.ToUpper(userInput);
}
}
}
尝试像这样重新格式化主文件:
static void Main(string[] args)
{
char userInput;
char upper;
Accounts myAccounts = new Accounts();
myAccounts.input();
do
{
Console.WriteLine("Enter an A to search account numbers");
Console.WriteLine("Enter a B to average the accounts");
Console.WriteLine("Enter X to quit the program");
Console.WriteLine("Enter an option --->");
userInput = Convert.ToChar(Console.ReadLine());
upper = char.ToUpper(userInput);
if (upper == 'A')
{
myAccounts.search();
}
else if (upper == 'B')
{
myAccounts.average();
}
else
Console.WriteLine("You entered an incorrect option, please select new option");
}
while (upper != 'X')
}
它并不完美,但是是一个很好的起点。 基本上为什么两次出现提示是因为在进入while循环之前先显示菜单,然后在执行操作后再次显示菜单。 我提供的do while循环应该可以解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.