C # как вернуться к предыдущему оператору

#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")