循环程序中的控制台位置清晰

问题描述 投票:0回答:2

嗨,我一直在寻找放置console.clear的位置,因为我已经制作了一个循环程序,但使用后想清除。谁能告诉我至少在正确的方向放置console.clear或推动我。抱歉,我是C#的新手,很快就要交作业,我很担心我还没有对我的Console.Clear命令进行排序。这是我的代码:

    using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Assignment_test
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.Clear();
        //when creating the variable i would of used byte however it wasn't picking it up so i had to use int which i know isnt effective use of memory
        int sUserChoice = 0;
        do
        {
        //this makes the text yellow
        Console.ForegroundColor = ConsoleColor.Yellow;
        Console.WriteLine("Welcome to Hit ‘n’ Miss Ltd");
        Console.WriteLine("Please select an option:");
        Console.WriteLine("\n\n 1 for Welcoming to the system");
        Console.WriteLine("\n 2 for the mean of grades of the class");
        Console.WriteLine("\n 3 for what month it is");
        Console.WriteLine("\n 4 for adds numbers between -10 and +10 and adds them together");
        Console.WriteLine("0 is quit");

        Console.Write("\n Please enter a number: ");
        int.TryParse(Console.ReadLine(), out sUserChoice);
 
 
 
 
 
 
        switch (sUserChoice)
        {
        case 1:
        //here i say that to start talking about the parameter that i shall be using
        WelcomeToTheSystem();
        break;
        case 2:
        // here i call apon the parameter used
        Grades();
        break;
        case 3:
        // here i call apon the parameter used
        Months();
        break;
        case 4:
        // here i call apon the parameter used
        AddingNegitiveAndPossitiveNumbers();
        break;
        // here i call apon the parameter used
        case 0:
        Quit();
        break;



        }



    } while (sUserChoice != 0);
 
 
    Console.ReadKey();
    }

        //start of prodecdures and funtions




        private static int DataVaildation()
        {

            //variables
            bool bUserInput;
            int iNumber;

            //below is a loop that runs at least once. the loop continues
            //iterating while the condition evaluates to true, otherwise it ends
            //and control goes to the statement immediately after it. 
            do
            {
                Console.Write("Please enter a number: ");
                //converts string into int
                bUserInput = Int32.TryParse(Console.ReadLine(), out iNumber);
                //this will be true if the user input could not be converted for instance a word is used
                if (!bUserInput)
                {
                    Console.WriteLine("Input could not be converted into an integer number");
                    continue;
                }

                //the validation so if the inputted number from the user it will reject int and do the console.writeline.
                if (iNumber < -11 || iNumber < 11)
                {
                    //the error message
                    Console.WriteLine("Your are out of range please stay between -10 and +10");

                    bUserInput = false;
                }

                //the number is in range
                else
                {
                    Console.WriteLine("Vaild number!");
                    //if bUserInput is true then the loop can end.
                    bUserInput = true;
                }
            } while (!bUserInput);//while this evaluates to true, the loop continues.

            return iNumber;



}


//option 4
 private static void AddingNegitiveAndPossitiveNumbers()
        {
            Console.WriteLine("Please give me 2 number between -10 and +10 and ill add them together\n");
            //calls apon the private static int above 
            int iNumber1 = DataVaildation();
            int iNumber2 = DataVaildation();

            //the adding will be done here
            int iResult = iNumber1 + iNumber2;

            Console.WriteLine("The sum of {0} + {1} is {2}", iNumber1, iNumber2, iResult);
        }

    //data validation

    //option 3 
    private static void Months()
    {
        Console.WriteLine("so pick a number between 1 and 12. 1 is january and 12 december");
        //here i declare that int is a variable
        int iMonths = 0;
        //i then will tryparse if someone inputs an invalid number 
        int.TryParse(Console.ReadLine(), out iMonths);

    Console.ReadKey();
    //i start a switch statement 
    switch (iMonths)
    {
        //if the user selects a number it will display the month this is done by using case to get the users input 
        case 1:
            Console.WriteLine("It's January");
            break;
        case 2:
            Console.WriteLine("It's Febuary");
            break;
        case 3:
            Console.WriteLine("It's March");
            break;
        case 4:
            Console.WriteLine("It's April");
            break;
        case 5:
            Console.WriteLine("It's May");
            break;
        case 6:
            Console.WriteLine("It's June");
            break;
        case 7:
            Console.WriteLine("It's July");
            break;
        case 8:
            Console.WriteLine("It's August");
            break;
        case 9:
            Console.WriteLine("It's September");
            break;
        case 10:
            Console.WriteLine("It's October");
            break;
        case 11:
            Console.WriteLine("It's Novemeber");
            break;
        case 12:
            Console.WriteLine("It's December");
            break;
        }
    }
    //0
    private static void Quit()
    {
    //this bit exits the code if you press 0
    System.Environment.Exit(0);
    }
    //1
    private static void WelcomeToTheSystem()
    {
    Console.WriteLine("Please enter a name: ");
    //used string here because its text
    string sName =
    Console.ReadLine();
    Console.WriteLine("Welcome to the system: " + sName);
    Console.ReadKey();
    }
    //2
    private static void Grades()
        {
            int[] array1 = new int[15];



            Console.WriteLine("please give me 15 numbers and i will give you the average of them");
            for (int i = 0; i < array1.Length; i++)
            {
                while (int.TryParse(Console.ReadLine(), out array1[i]) == false)
                {
                    Console.WriteLine("Please give me a number not text");
                }
            }

            ////here the averaging takes place it basscially averages the array that it has and adds + to every user input
            Console.WriteLine("The average is {0} / 15 = {1}", string.Join("+", array1), array1.Average());


        }
    }
}
c#
2个回答
0
投票

我建议您将其放置在周期的开始。

类似的东西:

      do
        {
          ...

            //this makes the text yellow
            Console.Clear();
            Console.ForegroundColor = ConsoleColor.Yellow;
          ...
        }

0
投票

我建议编写一个小的方法,询问您是否要继续。如果是这样,请清除屏幕,然后重新显示所有内容

 private static void WouldYouLikeToContinue()
        {
            Console.Write("Would you like to continue? [n to quit]: ");
            string input = Console.ReadLine();
            if (input.ToLower() == "n")
                Quit();
            Console.Clear(); // <--- This is where I would suggest adding the Clear.
        }

您可以在切换块之后使用此方法

    switch (sUserChoice)
    {
        case 1:
            //here i say that to start talking about the parameter that i shall be using
            userName = WelcomeToTheSystem();
            break;
        case 2:
            // here i call apon the parameter used
            Grades();
            break;
        case 3:
            // here i call apon the parameter used
            Months();
            break;
        case 4:
            // here i call apon the parameter used
            AddingNegitiveAndPossitiveNumbers();
            break;
        // here i call apon the parameter used
        case 0:
            Quit();
            break;
        }        
        WouldYouLikeToContinue(); // <----- HERE
    } while (sUserChoice != 0);

注意:您用于验证数据的方法...存在语法错误。

if (iNumber < -11 || iNumber > 11) // iNumber should be > 11 (not < 11)
© www.soinside.com 2019 - 2024. All rights reserved.