.NET 4.x Не получается работать с циклами while и foreach - C#

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

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

Пытаюсь написать что-то вроде модели механизма ввода логина-пароля, но не могу сделать две вещи: 1) заставить при "Login failed!" программу работать дальше по циклу и принимать новую пару логин-пароль; 2) сделать так, чтобы оно выдавало мне только один ответ: при поиске уже второй пары сначала сравнивает с первой парой в базе и пишет "Login failed!", а уже потом при сравнении со второй "Login success!".
 
static void Main(string[] args)
        {
            List<string> loginBase = new List<string>();
            loginBase.Add("log one");
            loginBase.Add("log two");
            bool logInd;
            
            while (logInd = true)
            {
                string login = Console.ReadLine();
                string pass = Console.ReadLine();
                string enterpass = login + " " + pass;
                foreach (string el in loginBase)
                {
                    if (String.Equals(el, enterpass))
                    {
                        logInd = true;
                        Console.WriteLine("Login success!");
                        break;
                    }
                    else
                    {
                        logInd = false;
                        Console.WriteLine("Login failed!");

                    }
                }
                break;
                
            }
            
            Console.WriteLine("Press any button...");
            Console.ReadKey();
        }
}
Хочу сделать просто ради того, чтобы сделать, чистый интерес.

Решение задачи: «.NET 4.x Не получается работать с циклами while и foreach»

textual
Листинг программы
//метод, проверяющий есть ли в списке lBase логин/пароль logPas
static bool CheckLoginNPassword(List<string> lBase, string logPas)
{
    foreach (string el in lBase)    //перебирается список
    {
        if (el == logPas)           //если нашлось совпадение
            return true;            //метод возвращает true
    }
    return false;                   //если не нашлось совпадения при переборе списка, метод возвращает false
}
static void Main(string[] args)
{
    List<string> loginBase = new List<string>();
    loginBase.Add("log one");
    loginBase.Add("log two");
    while (true) //бесконечный цикл
    {
        string login = Console.ReadLine();
        string pass = Console.ReadLine();
        string enterpass = login + " " + pass;
        if (CheckLoginNPassword(loginBase, enterpass)) //провряем, есть ли введенный логин/пароль в списке, и если есть, то
        {
            Console.WriteLine("Login success!"); //сообщаем об этом
            break; //выходим из бесконечного цикла
        }
        else //если логин/пароль в списке отсутствует 
        {
            Console.WriteLine("Login failed!"); //сообщаем об этом и продолжаем работу цикла
        }
    }
    Console.WriteLine("Press any key...");
    Console.ReadKey();
}

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


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

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

11   голосов , оценка 4.091 из 5