C#代码退出并在不应该执行时重新执行

时间:2018-08-28 01:30:43

标签: c# loops

我的代码大部分都可以工作,我尝试在线查找解决方案,但很难找到确切的问题。这是C#中的代码:

 static void Main(string[] args)
    {

        int maxFilm = 5;
        int minFilm = 1;
        Console.WriteLine("We are currently showing:");
        Console.WriteLine("1. Rush");
        Console.WriteLine("2. How I live now");
        Console.WriteLine("3. Thor");
        Console.WriteLine("4. Filth");
        Console.WriteLine("5. Planes");
        const int minAge1 = 15;
        const int minAge2 = 12;
        const int minAge3 = 18;
        int filmNumber;
        string filmNum;
        int age;
        string stringAge;
        do
        {
            Console.WriteLine("Enter the number of the film you wish to see: ");
            filmNum = Console.ReadLine();
            filmNumber = Int32.Parse(filmNum);
            if (filmNumber > maxFilm || filmNumber < minFilm)
            {
                Console.WriteLine("Invalid film number");
            }
        }
        while (filmNumber > maxFilm || filmNumber < minFilm);

        do
        {
            Console.WriteLine("Enter your age: ");
            stringAge = Console.ReadLine();
            age = Int32.Parse(stringAge);
            if (age < 5 || age > 120)
            {
                Console.WriteLine("Invalid age");
            }
        } while (age < 5 || age > 120);


        if (((filmNumber == 1 || filmNumber == 2) && age >= minAge1) || (filmNumber == 3 && age >= minAge2) || (filmNumber == 4 && age >= minAge3) || (filmNumber == 5))
        {
            Console.WriteLine("Enjoy the film");
        }
        else
        {
            Console.WriteLine("You are too young");
        }

输入:
首先,无效的电影编号
二,有效的电影编号
第三,年龄介于5-120

预期的输出:“您还太年轻”或“欣赏电影”,然后代码退出
将会发生什么:代码退出,然后从头开始重新执行。 如果我以有效的电影编号开头,那么它的表现将达到预期。感谢您的帮助

2 个答案:

答案 0 :(得分:2)

在最终的Console.WriteLine()之后,添加一个Console.ReadLine() 示例:

Console.WriteLine("Enjoy the film");
Console.ReadLine();

此外,如果您不想在此之后关闭程序,建议将程序置于循环中。

答案 1 :(得分:0)

我假设您想查看卖出状态,因此可以使用以下代码:

Console.ReadLine();

Console.ReadKey();

放入整个代码。通常,循环不是一个好主意。