Как сделать повторение всей программы по запросу (C#)? Требуется спросить у пользователя хочет ли он повторить написанный им же раннее тест и в случае утвердительного ответа начать тест сначала, в противном случае закончить работу. Вроде как нужно обернуть весь код в do while, но делаю что-то не так. вот мой нерабочий вариант: string answer; string yes = "yes"; do { "Некий код" Console.WriteLine("Желаете повторить тест?(Yes/No) "); answer = Convert.ToString(Console.ReadLine()); } while (answer == yes) ;
Да, вы почти правильно подошли к решению. Проблема в том, что вы сравниваете две строки как объекты, вместо того чтобы сравнивать их значения. Вам нужно использовать метод Equals() для сравнения строк. Ниже приведен исправленный вариант кода:
string answer; string yes = "yes"; do { // Ваш код теста Console.WriteLine("Желаете повторить тест? (Yes/No)"); answer = Console.ReadLine().ToLower(); // Приводим ввод к нижнему регистру для удобства сравнения } while (answer.Equals(yes)); // Проверяем, равна ли строка "yes"
Теперь программа будет продолжать повторяться, пока пользователь не введет "no" или что-то отличное от "yes".
Да, вы почти правильно подошли к решению. Проблема в том, что вы сравниваете две строки как объекты, вместо того чтобы сравнивать их значения. Вам нужно использовать метод Equals() для сравнения строк. Ниже приведен исправленный вариант кода:
string answer;string yes = "yes";
do
{
// Ваш код теста
Console.WriteLine("Желаете повторить тест? (Yes/No)");
answer = Console.ReadLine().ToLower(); // Приводим ввод к нижнему регистру для удобства сравнения
} while (answer.Equals(yes)); // Проверяем, равна ли строка "yes"
Теперь программа будет продолжать повторяться, пока пользователь не введет "no" или что-то отличное от "yes".