Неправильно читается из консоли строка

146
27 июня 2019, 00:00
  class Program
    {
        private string first, second;
        static void Main(string[] args)
        {
            Program prog = new Program();
            prog.input_data();
            Console.WriteLine("Получившийся результат выполнения импликации:\n"+ prog.implication());
            Console.ReadKey();
        }
        public string input_String()
        {
            Console.Write("Введите строку: ");
            return Console.ReadLine();
        }
        public bool implication (bool reason, bool result)
        {
            return !(reason && !result);
        } 
        public void input_data()
        {
            Console.WriteLine("Первый аргумент.");
            first = input_String();
            Console.Write("Второй аргумент.");
            do
            {
                Console.WriteLine("Должен быть той же длины, что и первый.");
                second = input_String();
            } while (first.Length == second.Length);
        }
        bool check_contains(char argument)
        {
            switch (argument)
            {
                case '1': return true;
                case '0': return false;
                default :
                    Console.WriteLine("Обнаружен посторонний знак, должны быть только '1' или '0'");
                    return false;
            }
        }
        char translate (bool argument)
        {
            return (argument) ? '1' : '0';
        }
        string implication()
        {
            string result="";
            for (int i = 0; i < first.Length; i++)
                result += translate(implication(check_contains(first[i]), check_contains(second[i])));
            return result;
        }
    }

Почему-то для считывания символов второй строки требуется ввести на один символ больше. При этом в методе input_data() срабатывает выход из цикла do...while, хотя вроде бы не должен.

Answer 1
public void input_data()
        {
            Console.WriteLine("Первый аргумент.");
            first = input_String();
            Console.Write("Второй аргумент.");
            do
            {
                Console.WriteLine("Должен быть той же длины, что и первый.");
                second = input_String();
            } while (first.Length != second.Length);
        }

Надо было всего лишь изменить условие в while.

READ ALSO
Заменить символы двоеточия или точки в формате времени на заданное слово

Заменить символы двоеточия или точки в формате времени на заданное слово

Подскажите, можно ли во времени, например: 01:00:05 типа DateTime или TimeSpan заменить двоеточия на сокращения ч, мин или сек и при этом убрать нули до первого...

169
Навигация в xamarin forms

Навигация в xamarin forms

Вопрос заключается в следующемСоздаю приложение на xamarin forms, используя паттерн mvvm

178
selenium web driver C# ожидание

selenium web driver C# ожидание

надо сделать ожидание пока элемент прогрузится но выдает ошибку на drManage()

131