Как вернуться в начало функции с

от admin

Возврат к началу программы C#

Гуглил я гуглил, и ненагуглил. Надо сделать возврат к началу программы из функции Comprasion(), не могу понять как это сделать, вот код:

Подскажите пожалуйста как это сделать.

Используй if и break — пускай функция Comprasion возвращает bool , а не void , и в зависимости от значения, которое вернет функция используй break или continue :

Оберните весь код в бесконечный цикл. ( for или while ). В результате, метод Comprasion будет возвращать управление в Main и программа начинаться с начала

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.3.11.43304

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как сделать возвращение к началу программы?

yarosroman

upd
На свой лад накидал в некоторых местах условия выхода из метода/цикла. Поскольку по вашему коду не понятно, в каком случае должно всё это прекратится, поэтому условие, когда всё должно закончится — сами подкорректируйте. Главное, выше три способа, полностью отвечают на ваш заданный вопрос.

  • Facebook
  • Вконтакте
  • Twitter

tomnolane

Обычно goto сильно усложняет код. Особенно, если goto из цикла вовне. Хотя, break и continue — это тоже обычные goto, но они нормальны, потому что это goto на определённую точку (конец или начало цикла).
Именно поэтому, если обычно нужен goto, то это почти всегда обозначает, что алгоритм не очень хорош («нехорошо пахнет»). Лучше переделать алгоритм так, чтобы goto был не нужен.
Но в некоторых случаях goto нужен. Например, в switch.

Дыметрей, рекомендую не использовать goto. Постарайтесь обойтись. Хотя бы используйте while (true), как говорил Griboks.

Как вернуться в начало функции с

23.7 – Произвольный файловый ввод/вывод Каждый класс файлового потока содержит файловый указатель, который используется для отслеживания текущей позиции чтения/записи в файле. Когда что-то читается или… Подробнее » Как вернуться в начало файла си

Как вернуть значение из функции c

  • автор: admin
  • 24.12.2022

Возврат нескольких значений из функции в C В этом посте будет обсуждаться, как вернуть несколько значений из функции в C. Мы знаем, что синтаксис функций… Подробнее » Как вернуть значение из функции c

Как вернуть ранее удаленный столбец dataframe

  • автор: admin
  • 24.12.2022

Очистка данных с помощью Pandas и NumPy Специалисты по обработке данных тратят много времени на очистку наборов данных и приведение их в форму, с которой… Подробнее » Как вернуть ранее удаленный столбец dataframe

Как вернуть домен если не успел продлить

  • автор: admin
  • 24.12.2022

Восстановление доменов Процедура восстановления доступна для международных и зарубежных доменов (.com, .net, .org, .me, .tv и др.)* и доменов программы New gTLD, для которых инициирована… Подробнее » Как вернуть домен если не успел продлить

Как вернуть командное окно в scilab

  • автор: admin
  • 24.12.2022

Scilab/Знакомство с пользовательским интерфейсом В этом разделе мы познакомимся с интерфейсом пользователя. Пользовательский интерфейс мы рассмотрим из-под Windows (пусть это вас не пугает, так как… Подробнее » Как вернуть командное окно в scilab

Как заставить функцию C ++ вернуться к своей первой строке?

Итак, у меня есть функция внутри консольного приложения win32 C++, например:

как включить такие возвраты?

Рассматривали ли вы использование цикла или рекурсии? — James McNellis

7 ответы

Похоже, что вы пытаетесь продолжать пробовать различные форматы, пока ffmpeg не откроет URL-адрес. Это, вероятно, то, что вы хотите сделать (и ИМХО чище, чем использование goto ).

Обычно есть естественная петля, которую вы можете выразить ( while , for or do. while ), в противном случае желание произвольного перехода к началу функции выглядит как плохой дизайн.

Самый простой способ сделать то, что вы говорите, что хотите, это с помощью goto :

Читать:
Что такое подключение vpn с ad

Изменить: исправлено полностью фальшиво do..while пример.

Некоторым не нравится это слово goto и будет настаивать на том, чтобы обернуть все в бесконечный цикл и использовать continue , но это просто goto под другим именем.

Технически они одинаковы. Но код гораздо более выразительный с циклом IMO. Я бы шлепнул любого разработчика, который использовал goto в этом случае. Тем не менее, я проголосовал за ваш пост. — Джон Диблинг

@Джон Диблинг: Правда? я предпочитаю явное goto над неявным goto я сам, но вам придется изрядно побороться, чтобы меня приняли. В девяноста девяти случаях из ста есть некоторое упрощение или рефакторинг, который может быть сделан, чтобы выразить что-то в виде реального цикла или разделить функцию, чтобы она не имела множественных обязанностей, что является обычным подозреваемым для сомнительного управления потоком. — CB Бейли

@Charles: я рад, что ты удалил этот ответ — Джон Диблинг

@Джон Диблинг: думаю, я бы просто использовал «перерыв»; в конце. Наличие большего количества логических переменных состояния, чем это строго необходимо, затрудняет следование ИМХО. — CB Бейли

«Некоторым людям не нравится слово goto, и они будут настаивать на заключении всего в бесконечный цикл и использовании continue, но это просто goto под другим именем». Это означает, что другие конструкции циклов и ветвлений не являются «просто переходами под другим именем», хотя на самом деле они таковыми являются. Но они (в том числе и этот выделенный вами пример) гораздо выразительнее, чем просто goto. я понимаю for (;;) и сразу же осознать, что этот цикл будет повторяться до тех пор, пока что-то не изменится. я понимаю goto и мне остается задаться вопросом: «Куда это идет и почему?» — user470379

Вы можете использовать цикл while или цикл for для повторения функции несколько раз. Сколько раз его нужно вызывать? Если всего два раза, вы, вероятно, можете просто вызвать функцию дважды, но для большего количества вам понадобится использовать какой-то цикл.

Вы также можете использовать goto, но цикл, вероятно, лучше.

Это очень плохой стиль С++, но, возможно, goto ?

Учитывая ваш код.

. и предполагая, что вы действительно хотите позвонить SetConstants снова, когда InitUrl терпит неудачу, естественный способ выразить желаемый «возврат» — использовать C++ return заявление вроде.

Вы также можете сделать это с исключениями. Это может быть более ясно, но это, вероятно, будет менее эффективно. Предполагая, что повторные попытки являются общими.

Или вы можете использовать continue в for(;;) петля. мне не нравится continue , и он мало используется (по крайней мере, как сообщал Google Code Search несколько лет назад). Но это может быть как раз то, что доктор прописал в отношении убеждений коллег о том, что такое хороший код.

Примечание: технически также возможно использовать goto , но кроме использования в машинном коде их лучше избегать. Для получения дополнительной информации об этом см. Оригинальную статью Дейкстры 1968 года. «Перейти к считающимся вредным». Хотя по состоянию на 2010 год ему уже 42 года, он по-прежнему остается жемчужиной — и лучшим не забыто.

Это предполагает, что в настоящее время нет общих локальных данных между «еще немного кода» и «еще код здесь». Пока это возможно, я предпочитаю именно этот подход к рефакторингу. — CB Бейли

@Charles: это зависит от данных, существует множество различных решений для обмена данными. Например, параметры, состояние объекта, часть структуры данных, даже обученная обезьяна повторяет ритм. 🙂 подробно опишите свою новую проблему, и я или кто-то другой решит ее или, по крайней мере, даст рекомендации. ваше здоровье, — Приветствия и hth. — Альф

Используйте петлю. Используйте форму do< >while, потому что вы, очевидно, хотите, чтобы все выполнялось хотя бы один раз.

Похожие статьи