Возвращение в начало программы при вводе неверного пароля - C#

Узнай цену своей работы

Формулировка задачи:

У меня такая проблема:
using System;
using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Xml.Linq;
    class Program
    {
        
        static void Main()
        {
            
            Console.WriteLine("Добро Пожаловать в мою систему данных");
            Console.WriteLine("Чем я могу вам помочь?");
            Console.WriteLine("1-Войти 2-Создать аккаунт 3-Выйти");
            string myLanguage = Console.ReadLine();
 
            sw1(myLanguage);
           
            Console.ReadLine();
        }
 
        static void sw1(string s)
        {
            string path = @"data.xml";
            
            switch (s)
            {
                case "1":
                    {
                        Console.WriteLine("Введите свой id");
                        string id = Console.ReadLine();
                        Console.WriteLine("Введите пароль");
                        string pass = Console.ReadLine();
                        if (File.Exists("data.xml"))
                        {
                            XDocument xd = XDocument.Load(path);
                            var pep = xd.Root.Elements("People").Where(x => x.Attribute("id").Value == id 
                                        && x.Attribute("password").Value == pass) 
                                        .Select(x => 
                                        new
                                        {
                                            name = x.Attribute("name").Value,
                                            lastname = x.Attribute("lastname").Value,
                                            birthday = x.Attribute("birthday").Value,
                                            nameRight = x.Attribute("nameRight").Value
                                        }).FirstOrDefault();
                            if (pep != null){
                            Console.WriteLine("{0} {1} дата рождения: {2}\n\nПоздравляю, вы вошли в свою учетную запись успешно", pep.name, pep.lastname, pep.birthday);
                            Console.WriteLine("Вы зашли с правами {0}", pep.nameRight);

                            }
                            else {
                                Console.WriteLine("Неправильный логин или пароль");
                                
                                }
                            }
                        else Console.WriteLine("В данный момент данных нет, попробуйте зарегистрироваться");

                    }
 
                    break;
                case "2":
                    {
                        string name, lastname, password, nameRight;
                        int id;
                        DateTime birth;
                        People pepl;
                        Console.WriteLine("Введите имя:");
                        name = Console.ReadLine();
                        Console.WriteLine("Введите Фамилию:");
                        lastname = Console.ReadLine();
                        Console.WriteLine("Введитедату рождения в Формате YYYY MM DD:");
                        birth = DateTime.Parse(Console.ReadLine());
                        Console.WriteLine("Введите пароль:");
                        password = Console.ReadLine();
                        pepl = new People(name, lastname, birth, password, nameRight);
                        pepl.add_new(out id);
                        Console.WriteLine("Новая учетная запись создана успешно.\nВаш Id - {0}", id);
                    }
 
                    break;
                case "3":
                    Console.WriteLine("Досвидания!");
                    break;
                default:
                    Console.WriteLine("Вы допустили ошибку! Попробуйте еще раз");
                    break;
            }
        }
    }

    class People
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string LastName { get; set; }
        public DateTime Birthday { get; set; }
        public string Password { get; set; }
        public string NameRight { get; set; }
 
        public People(string name, string lastname, DateTime birthday, string password, string nameRight)
        {
            this.Name = name;
            this.LastName = lastname;
            this.Birthday = birthday;
            this.Password = password;
            this.NameRight = nameRight;
        }
 
        public void add_new(out int id)
        {
            XDocument xdoc;
            string path = @"data.xml";
            if (File.Exists(path)) xdoc = XDocument.Load(path);
            else
            {
                xdoc = new XDocument();
                xdoc.Add(new XElement("Root"));
            }
           // int id;
            if (xdoc.Root.Elements("People").Count() == 0) id = 0;
            else id = xdoc.Root.Elements("People").Select(x => Convert.ToInt32(x.Attribute("id").Value)).Last();
            xdoc.Root.Add(new XElement("People",
                              new XAttribute("id", ++id),
                              new XAttribute("name", this.Name),
                              new XAttribute("lastname", this.LastName),
                              new XAttribute("birthday", this.Birthday.ToShortDateString()),
                              new XAttribute("password", this.Password),
                              new XAttribute("nameRight", this.NameRight)));
            xdoc.Save(path);
        }
    }
Мне нужно чтобы когда человек к примеру ввел неправильный пароль, то программа сразу закрывается. А мне надо чтобы после неправильного пароля его перемещало в начало, и ему выводилось как в начале:
Console.WriteLine("Добро Пожаловать в мою систему данных");
            Console.WriteLine("Чем я могу вам помочь?");
            Console.WriteLine("1-Войти 2-Создать аккаунт 3-Выйти");
И так далее, тоесть не выходя из программы, все слова стерались Console.Clear() и выводилось заного. Так будет удобно. А то человек постоянно будет закрывать программу и заходить заного. это не удобно

Решение задачи: «Возвращение в начало программы при вводе неверного пароля»

textual
Листинг программы
        static void Main()
        {
            while (true)
            {
                Console.WriteLine("Добро Пожаловать в мою систему данных");
                Console.WriteLine("Чем я могу вам помочь?");
                Console.WriteLine("1-Войти 2-Создать аккаунт 3-Выйти");
                string myLanguage = Console.ReadLine();
 
                try
                {
                    sw1(myLanguage);
                }
                catch (ApplicationException)
                {
                    break;
                }
            }
            Console.ReadLine();
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы