Как выйти сразу из нескольких циклов?
От: XJess  
Дата: 13.10.10 12:55
Оценка:
Привет всем!
Собственно, сабж. Читала книгу по C# и там описание оператора goto. И вдруг всплыл этот наболевший вопрос в голове. Как Вы бы вышли сразу из нескольких циклов? Мне приходят в голову два варианта — с помощью опять же goto или флагами. И то, и другое некрасиво вроде... Может, еще есть какие извращенные способы, которые кто-то придумал?
Re: Как выйти сразу из нескольких циклов?
От: Erop Россия  
Дата: 13.10.10 12:56
Оценка: 3 (3) +5
Здравствуйте, XJess, Вы писали:

XJ>Привет всем!

XJ>Собственно, сабж. Читала книгу по C# и там описание оператора goto. И вдруг всплыл этот наболевший вопрос в голове. Как Вы бы вышли сразу из нескольких циклов? Мне приходят в голову два варианта — с помощью опять же goto или флагами. И то, и другое некрасиво вроде... Может, еще есть какие извращенные способы, которые кто-то придумал?

По goto за конец цикла и не страдать.

Ещё можно вложенные циклы в отдельный метод завернуть и выходить из него по return. Некоторым иногда кажется, что так лучше.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: Как выйти сразу из нескольких циклов?
От: blackhearted Украина  
Дата: 13.10.10 12:58
Оценка: 11 (2) +2 :)
Здравствуйте, XJess, Вы писали:

XJ>Привет всем!

XJ>Собственно, сабж. Читала книгу по C# и там описание оператора goto. И вдруг всплыл этот наболевший вопрос в голове. Как Вы бы вышли сразу из нескольких циклов? Мне приходят в голову два варианта — с помощью опять же goto или флагами. И то, и другое некрасиво вроде... Может, еще есть какие извращенные способы, которые кто-то придумал?

Священную войну начать решилась?

Сначала поиск тут засветились многие знаменитые тролли
Автор: LeonGorbachev
Дата: 27.05.02
Re: Как выйти сразу из нескольких циклов?
От: okman Беларусь https://searchinform.ru/
Дата: 13.10.10 13:45
Оценка: 6 (1) -2 :))) :)))
Здравствуйте, XJess, Вы писали:

XJ>Привет всем!

XJ>Собственно, сабж. Читала книгу по C# и там описание оператора goto. И вдруг всплыл этот наболевший вопрос в голове. Как Вы бы вышли сразу из нескольких циклов? Мне приходят в голову два варианта — с помощью опять же goto или флагами. И то, и другое некрасиво вроде... Может, еще есть какие извращенные способы, которые кто-то придумал?

Исключения.
Re: Как выйти сразу из нескольких циклов?
От: los puercos  
Дата: 13.10.10 13:55
Оценка:
Здравствуйте, XJess, Вы писали:

XJ>Привет всем!

XJ>Собственно, сабж. Читала книгу по C# и там описание оператора goto. И вдруг всплыл этот наболевший вопрос в голове. Как Вы бы вышли сразу из нескольких циклов? Мне приходят в голову два варианта — с помощью опять же goto или флагами. И то, и другое некрасиво вроде... Может, еще есть какие извращенные способы, которые кто-то придумал?

1) throw
2) оформить логику циклов как отдельную функцию, и выйти по return
3) использовать goto и быстро выпить йаду
Re[2]: Как выйти сразу из нескольких циклов?
От: blackhearted Украина  
Дата: 13.10.10 13:57
Оценка:
Здравствуйте, los puercos, Вы писали:

LP>Здравствуйте, XJess, Вы писали:


XJ>>Привет всем!

XJ>>Собственно, сабж. Читала книгу по C# и там описание оператора goto. И вдруг всплыл этот наболевший вопрос в голове. Как Вы бы вышли сразу из нескольких циклов? Мне приходят в голову два варианта — с помощью опять же goto или флагами. И то, и другое некрасиво вроде... Может, еще есть какие извращенные способы, которые кто-то придумал?

LP>1) throw

А тут не пить ядок?
LP>2) оформить логику циклов как отдельную функцию, и выйти по return
Тут тоже яду не нужно?
LP>3) использовать goto и быстро выпить йаду
А вас switch не смущает?
Re[3]: Как выйти сразу из нескольких циклов?
От: los puercos  
Дата: 13.10.10 14:02
Оценка:
Здравствуйте, blackhearted, Вы писали:

B>Здравствуйте, los puercos, Вы писали:


LP>>Здравствуйте, XJess, Вы писали:


XJ>>>Привет всем!

XJ>>>Собственно, сабж. Читала книгу по C# и там описание оператора goto. И вдруг всплыл этот наболевший вопрос в голове. Как Вы бы вышли сразу из нескольких циклов? Мне приходят в голову два варианта — с помощью опять же goto или флагами. И то, и другое некрасиво вроде... Может, еще есть какие извращенные способы, которые кто-то придумал?

LP>>1) throw

B>А тут не пить ядок?
Разве что немного. Не самое лучшее решение, привел "за компанию"

LP>>2) оформить логику циклов как отдельную функцию, и выйти по return

B>Тут тоже яду не нужно?
Нет, тут не нужно. Можно йогурт.

LP>>3) использовать goto и быстро выпить йаду

B>А вас switch не смущает?
Смущает, очень. Краснею, смущаюсь и использую что-нибудь типа Visitor или Command
Re[4]: Как выйти сразу из нескольких циклов?
От: blackhearted Украина  
Дата: 13.10.10 14:04
Оценка: +4
Здравствуйте, los puercos, Вы писали:

LP>>>3) использовать goto и быстро выпить йаду

B>>А вас switch не смущает?
LP>Смущает, очень. Краснею, смущаюсь и использую что-нибудь типа Visitor или Command

ПГМ ?
PS П == паттернизм.
Re[2]: Как выйти сразу из нескольких циклов?
От: Brutalix  
Дата: 13.10.10 14:06
Оценка: +1
Здравствуйте, Erop, Вы писали:

E>По goto за конец цикла и не страдать.


Re[2]: Как выйти сразу из нескольких циклов?
От: Brutalix  
Дата: 13.10.10 14:07
Оценка: 1 (1) +3
Здравствуйте, okman, Вы писали:

O>Исключения.


О, мьсе понимает толк в извращениях!
Re[5]: Как выйти сразу из нескольких циклов?
От: Erop Россия  
Дата: 13.10.10 14:10
Оценка: 2 (1) +2
Здравствуйте, blackhearted, Вы писали:

B>ПГМ ?

B>PS П == паттернизм.

По-русски это называется "шаблонное мышление"
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[3]: Как выйти сразу из нескольких циклов?
От: okman Беларусь https://searchinform.ru/
Дата: 13.10.10 14:12
Оценка: 1 (1) +3 -1 :))
Здравствуйте, Brutalix, Вы писали:

B>О, мьсе понимает толк в извращениях!


Извращение — писать большущие конструкции с вложенными циклами,
а потом думать как из них вылезти.
Re[3]: Как выйти сразу из нескольких циклов?
От: March_rabbit  
Дата: 13.10.10 14:16
Оценка:
Здравствуйте, Brutalix, Вы писали:

B>Здравствуйте, okman, Вы писали:


O>>Исключения.


B>О, мьсе понимает толк в извращениях!

кстати, смех смехом, но разок я именно так и сделал. Не для выхода из циклов, а для реализации длинного и тупого алгоритма, в котором ошибка на каждом шаге приводила к завершению работы процедуры. Просто return не прокатывал, потому как надо было выполнить еще пару действий. Решил не плодить дерева if-ов, а сделать линейный алгоритм с выходом по исключениям.
Re[4]: Как выйти сразу из нескольких циклов?
От: IROV..  
Дата: 13.10.10 14:34
Оценка:
Здравствуйте, los puercos, Вы писали:

LP>>>3) использовать goto и быстро выпить йаду

B>>А вас switch не смущает?
LP>Смущает, очень. Краснею, смущаюсь и использую что-нибудь типа Visitor или Command


да я гдето видел написаный на ООП "Hello World"

не кажеться что всему свое место? и не стоит все под одно "чисать"

я не волшебник, я только учусь!
Re[4]: Как выйти сразу из нескольких циклов?
От: March_rabbit  
Дата: 13.10.10 14:48
Оценка:
Здравствуйте, los puercos, Вы писали:

LP>>>3) использовать goto и быстро выпить йаду

B>>А вас switch не смущает?
LP>Смущает, очень. Краснею, смущаюсь и использую что-нибудь типа Visitor или Command
а вот не надо делать сложно (и "красиво") там, где можно просто. Такие вот авторы напишут, а потом другому что-нибудь поправить или добавить в код приходится. И начинается: шаблоны, сигналы, мапперы, визиторы, макросы.... вплоть до того, что есть у класса метод, а где объявлен и определен — не найти, ибо за шаблонами и макросами спрятан (это из последнего, но я ранее с таким же сталкивался)....
Re[4]: Как выйти сразу из нескольких циклов?
От: los puercos  
Дата: 13.10.10 19:20
Оценка: :)
Здравствуйте, los puercos, Вы писали:

LP>>>3) использовать goto и быстро выпить йаду

B>>А вас switch не смущает?
LP>Смущает, очень. Краснею, смущаюсь и использую что-нибудь типа Visitor или Command

Господа, у вас плохо с ч/ю. Кто не понял — это был такой толстый сарказм.
switch — это прекрасно, пока их не становится 2, 3 и так далее для обработки одной и той же последовательности кейсов.
А вот goto must die
Автор: IT
Дата: 08.06.02
Re[4]: Как выйти сразу из нескольких циклов?
От: Brutalix  
Дата: 13.10.10 22:37
Оценка: :))
Здравствуйте, March_rabbit, Вы писали:

M_>кстати, смех смехом, но разок я именно так и сделал. Не для выхода из циклов, а для реализации длинного и тупого алгоритма, в котором ошибка на каждом шаге приводила к завершению работы процедуры. Просто return не прокатывал, потому как надо было выполнить еще пару действий. Решил не плодить дерева if-ов, а сделать линейный алгоритм с выходом по исключениям.


А почему не сделать так:


int длинный_и_тупой_алгоритм() {

    тупые_вычисления_1();
    if (шит_хаппен) goto приехали;

    тупые_вычисления_2();
    if (шит_хаппен) goto приехали;

    тупые_вычисления_3();
    if (шит_хаппен) goto приехали;

    тупые_вычисления_4();
    if (шит_хаппен) goto приехали;

    тупые_вычисления_5();
    if (шит_хаппен) goto приехали;

    усё_в_упорядке();

приехали:
    return 0;
}


?
Re: Как выйти сразу из нескольких циклов?
От: MasterZiv СССР  
Дата: 14.10.10 09:30
Оценка: 2 (2) +2
On 13.10.2010 16:55, XJess wrote:
Как Вы бы вышли сразу из нескольких
> циклов? Мне приходят в голову два варианта — с помощью опять же goto или
> флагами.

return !
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Как выйти сразу из нескольких циклов?
От: Mr.Delphist  
Дата: 14.10.10 10:46
Оценка:
Здравствуйте, blackhearted, Вы писали:

B>Здравствуйте, los puercos, Вы писали:


LP>>>>3) использовать goto и быстро выпить йаду

B>>>А вас switch не смущает?
LP>>Смущает, очень. Краснею, смущаюсь и использую что-нибудь типа Visitor или Command

B>ПГМ ?

B>PS П == паттернизм.

Неужели Вы предпочитаете МГМ?
PS М == макароны
Re[6]: Как выйти сразу из нескольких циклов?
От: los puercos  
Дата: 14.10.10 11:55
Оценка: :)
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, blackhearted, Вы писали:


B>>ПГМ ?

B>>PS П == паттернизм.

E>По-русски это называется "шаблонное мышление"


А кто сказал, что "шаблонное мышление" — это плохо?
Хинт: стремление применять шаблоны там где можно и нельзя шаблонным мышлением не является.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.