Есть ли какая-либо функция для передачи потока в программировании на c ++, альтернативная циклу while или do while? - PullRequest
2 голосов
/ 20 апреля 2019

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

моя первая строка была. std::cout<<"Wlcome to your account \n"; Тогда мой выбор варианта. std::cout<<"press 12 to go to main manue \n"; это было мое другое заявление, с которого я хочу отправить свой поток к первой строке. else if (in.amount==12) { }

что я мог написать в этих скобках, чтобы вернуть поток программы на первую строку, и на экране появилось мое "Добро пожаловать в ваш аккаунт"

Ответы [ 2 ]

4 голосов
/ 20 апреля 2019

Я уже написал код строки 1256, поэтому я не могу реструктурировать его в цикле while или do while.

Почему бы и нет? Вы можете просто обернуть while петлю вокруг всего этого.

Тем не менее, есть способ сделать именно то, что вы просите: goto.

Сначала вам нужно обозначить одно из ваших утверждений. Например:

int main() {
  the_beginning:
    std::cout << "Welcome to your account\n";
    ...
}

Затем вы можете сделать goto the_beginning;, чтобы передать управление оператору с меткой the_beginning.

См. goto на cppreference для получения дополнительной информации и примеров.

0 голосов
/ 20 апреля 2019

Нет необходимости в goto (что является очень плохой практикой на языке высокого уровня).Вы можете просто обернуть всю свою функцию в бесконечный цикл:

У вас было:

void foo()
{
  // code
  // you want to restart here
  // you want to quit here
  // code
}

У вас будет:

void foo()
{
  for(;;)
  {
    // code

    // you want to restart here
    continue;

    // you want to quit here
    break;

    // code

    break; // if you want to terminate at the end;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...