@onixela

Как сделать повторение всей программы по запросу (C#)?

Требуется спросить у пользователя хочет ли он повторить написанный им же раннее тест и в случае утвердительного ответа начать тест сначала, в противном случае закончить работу.
Вроде как нужно обернуть весь код в do while, но делаю что-то не так.

вот мой нерабочий вариант:
string answer;
string yes = "yes";

do
{
"Некий код"

Console.WriteLine("Желаете повторить тест?(Yes/No) ");
answer = Convert.ToString(Console.ReadLine());

} while (answer == yes) ;
  • Вопрос задан
  • 2820 просмотров
Решения вопроса 1
AlekseyNemiro
@AlekseyNemiro
full-stack developer
Если ответ пользователя будет отличаться от yes, то работа цикла завершится.

Проверку ответа лучше делать без учета регистра, возможно проблема в этом:

string answer;
string yes = "yes"; 
// из yes лучше сделать константу, чтобы в этом был смысл :)
// const string yes = "yes"; 
// либо массив - это позволит проверять разные варианты ответов
string[] yesVariants = { "yes", "y", "true", "да", "еще бы", "только об этом и мечтаю" };
// или можно использовать регулярные выражения

do
{

  // любой код здесь

  Console.WriteLine("Желаете повторить тест?(Yes/No) ");
  answer = Console.ReadLine();

} while (answer.Equals(yes, StringComparison.OrdinalIgnoreCase));
// проверка по массиву ответов
// } while (yesVariants.Contains(answer, StringComparer.OrdinalIgnoreCase));

56258ea1eb5a4826a05a07bf0beeddd8.gif
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
15432
@15432
Системный программист ^_^
А не образуется ли в конце введенной строки литерала \n (перевод строки)?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы