Как реализовать ввод данных в консоль пользователем, пока он не введет определенное слово?
Прохожу курс на степике по C#. Дошел до словарей. По заданию требуется написать программу которая должна запрашивать данные у пользователя, пока он не введет слово exit. Дайте намек как это реализовать. У меня вообще идей нет. Я так понимаю как-то через цикл это надо делать. Т.к. до этого циклы изучались только в рамках ввода чисел. А как работать с вводом в цикле не понимаю.
Т.к. до этого циклы изучались только в рамках ввода чисел. А как работать с вводом в цикле не понимаю.
С вводом работать одинаково, хоть в цикле, хоть не в цикле. Циклы и ввод - это разные действия, друг с другом никак не связанные, вы их связываете только алгоритмом вашей программы (т.е. порядком выполнения инструкций).
В цикле читайте стандартный ввод и проверяйте, что там пользователь ввел. Если "exit", то завершаем программу, если что-то другое - очередная итерация цикла.
На эту задачу хорошо ложиться цикл do {} while с постусловием.
res2001, да я уже несколько раз читал, я не понимаю что не так делаю. Мне нужно чтобы программа выдавала запрос на ввод имени и возраста пока юзер не введет exit
Мне нужно чтобы программа выдавала запрос на ввод имени и возраста пока юзер не введет exit
У вас сейчас в коде пользователь должен вводить данные 3 раза на каждой итерации цикла:
1. имя
2. возраст
3. признак возврата: exit или все что угодно для продолжения.
res2001, Нужно чтобы ввод имени и возраста происходил бесконечно пока пользователь не решит ввести exit. Если убрать
Console.WriteLine("Если хотите выйти введите exit: ");
, то программа работает не так как нужно, т.е. после первого ввода пары значений просто появляется пустая строка, а должен быть новый запрос имени и т.д. и если ввести сейчас exit, то программа следующим запрашивает возраст
т.е. после первого ввода пары значений просто появляется пустая строка
Да это не пустая строка, это то что ты видишь в ходе работы ReadLine в этом участке кода. while (Console.ReadLine() == stopWord);
А это
Console.WriteLine("Если хотите выйти введите exit: ");
просто делает немного яснее происходящее.
Я же тебе писал, что у тебя не 2 ввода значений, как ты похоже думаешь, а 3. Третий раз ты получаешь от пользователя exit или любое другое значение, которое интерпретируется как продолжение ввода.