繁体   English   中英

while循环重复用户输入C#

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM