#c#
#c#
Вопрос:
Привет, мне интересно, как вернуться к предыдущему оператору в C#
Например, я хочу снова показать пользователю строку чтения, когда он заполнил ее неправильно, и когда он сделает это правильно, он покажет ему следующую строку кода / инструкции (в этом экзамене. Консоль.Строка записи («Привет»))
Как я мог это сделать?
int num;
string prvnicislo;
prvnicislo = Console.ReadLine();
while (true)
{
if (int.TryParse(prvnicislo, out num))
{
Convert.ToInt32(prvnicislo);
}
else
{
Console.WriteLine("'{0}' is not int, try it again:", prvnicislo);
prvnicislo = Console.ReadLine();
}
}
Console.WriteLine("Hi");
Комментарии:
1. Вам придется подумать об этом
while (true)
цикле и о том, как он влияет на вашу программу.2. Вы можете добавить
break
оператор послеConvert
строки, чтобы выйти из цикла.
Ответ №1:
Я думаю, это сработает:
int num;
string prvnicislo = Console.ReadLine();
while (!int.TryParse(prvnicislo, out num))
{
Console.WriteLine("'{0}' is not int, try it again:", prvnicislo);
prvnicislo = Console.ReadLine();
}
Console.WriteLine("Hi");
Обратите внимание, что нет необходимости использовать Convert .ToInt32, потому что, если синтаксический анализ был успешным, метод TryParse присвоит проанализированному значению int значение num.
Комментарии:
1. Это то, что я ищу!! Спасибо
2. @JakubStanek Примите его ответ как правильный, если он вам помог!
Ответ №2:
проверьте следующий фрагмент кода
int num;
string prvnicislo;
prvnicislo = Console.ReadLine();
while (true)
{
if (int.TryParse(prvnicislo, out num))
{
Convert.ToInt32(prvnicislo);
break;
}
else
{
Console.WriteLine("'{0}' is not int, try it again:", prvnicislo);
prvnicislo = Console.ReadLine();
}
}
Console.WriteLine("Hi");
Надеюсь, это поможет
Ответ №3:
если это может помочь
string prvnicislo = String.Empty;
bool isEntryWrong = true;
do
{
Console.Write("Enter data: ");
prvnicislo = Console.ReadLine();
int num;
if(int.TryParse(prvnicislo, out num))
{
isEntryWrong = false;
}
else
{
Console.WriteLine("'{0}' is not int, try it again:", prvnicislo);
}
} while (isEntryWrong);
Console.WriteLine("Hi")