|
Модератор
|
|
"Запрещённый" goto18.10.2020, 16:18. Показов 3123. Ответов 40
Метки нет (Все метки)
Тема создана на основе родительской Переместить пользователя снова на ввод числа, если он вводит не число
Сюда вынесена дискуссия об использовании goto в программах на C#.
0
|
|
| 18.10.2020, 16:18 | |
|
Ответы с готовыми решениями:
40
Использование goto Использование goto |
|
|
|
| 18.10.2020, 22:55 | |
|
goto встречал в исходниках .NET Framework. Всегда как средство низкоуровневой оптимизации. То есть с помощью goto там имитируется вызов метода.
Добавлено через 10 минут https://github.com/dotnet/core... extInfo.cs А вот и конкретный пример
0
|
|
|
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
|
||
| 18.10.2020, 22:57 | ||
|
1
|
||
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
|
| 18.10.2020, 23:00 | |
|
Рядовой, вызов метода все локальные переменные в стек сбрасывает, а goto позволяет этого избежать.
0
|
|
|
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
|
|
| 18.10.2020, 23:00 | |
|
Toros1992, достоверно утверждать не могу, но мне кажется, вызов метода - и есть goto
0
|
|
|
Модератор
|
|||||||
| 18.10.2020, 23:06 [ТС] | |||||||
|
Но "вечный цикл", возможно ошибаюсь, тоже нельзя отнести к хорошему стилю программирования. Честно говоря, вот конкретно для этой задачи, я не могу сказать, что хоть один вариант меня полностью устраивает, в том числе и мой. Для реального использования лучше инкапсулировать вывод сообщения и ввод значения в статическом методе. Но такой вариант, как мне кажется, будет сложен для начинающих.
0
|
|||||||
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
||
| 18.10.2020, 23:14 | ||
|
По мне решения от Rius, ваше последнее и мое с переменной вполне приемлемы.
1
|
||
|
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
|
|||||||
| 20.10.2020, 03:44 | |||||||
:Кликните здесь для просмотра всего текста
А просто return вызвать религия не позволяет? Добавлено через 2 минуты З. Ы. А метками я последний раз целенаправлено пользовался когда писал на QBasic.
0
|
|||||||
|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
|
| 20.10.2020, 09:11 | |
|
Нас в универе препод по рукам бил за goto. Говорил, "вы же не на бейсике пишите". И мог свободно завернуть работу и не принять ее, если в ней был использован этот оператор. После этого я долго писала на Делфи (паскаль), теперь вот c#, и у меня ни разу не возникло ситуации, где бы мне мог пригодиться оператор goto. Поэтому мое личное мнение:
1. Оператор Goto существует (microsoft, да и многие другие компании его зачем-то оставили), значит имеет право на существование. 2. Без него абсолютно спокойно можно обойтись, поэтому его использование - исключительно на совести программиста. 3. Развязывать холивар - глупо и не правильно. У меня аллергия на цитрусовые (если сразу съем килограмм - могу не выжить), и в мире много таких людей, но выглядело бы очень странно, если бы мы собрались и устроили митинг за то, чтобы все апельсины в мире уничтожили, потому что от них можно умереть. 4. Тру говнокодер и без goto может превратить листинг программы в кучу непонятного нечто) Поэтому, даже если запретить его на законодательном уровне это мало на что повлияет
0
|
|
|
Модератор
|
|
| 20.10.2020, 11:17 [ТС] | |
|
Kyra90, вопрос немного в другом.
Стоит ли усложнять код с единственной целью: избежать использования goto ? И в плотную к этому примыкает вопрос: что такое усложнение кода? Ответ на второй, очевидно, зависит от квалификации. Поэтому в ввиду Раздела подразумевается "для начинающих".
0
|
|
|
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
|
||
| 20.10.2020, 12:03 | ||
|
Просто бывает же такое... написали Вы программу, и пользуетесь, допустим. А через год решили подправить что то, открываете код, он от времени из памяти уже ушел и нужно заново его прочитывать, вспоминать... а там.. мама родная) 50 goto на кв.см кода))) Поэтому да, стоит отказаться от goto и использовать другие способы для... (для чего там goto используют)). Это мое мнение, но отговаривать его использовать кого то другого я вряд ли буду)
0
|
||
|
Just Do It!
|
||
| 20.10.2020, 12:27 | ||
|
История про то
Как меня Verevkin за гоуту покусал я был прав, но он не понял(...), ах, как жаль ![]() а кто считает обратное должны подвергаться нещадному троллингу. ![]() если код будет работать чуток быстрее и читать его будет понятнее, то с какой кстати отказываться от гоуту, но правда, если его величество ПРЕПОД сказал отказаться, то да, тут уж без вариантов.
0
|
||
|
Заблокирован
|
|
| 20.10.2020, 12:30 | |
|
Я позволю себе некомпетентно заметить: "заставь дурака богу молиться - он и лоб расшибёт".
Хоть я сам и являюсь лицом пострадавшим лично от goto ("переводил" на c# программу с фортрана, в которой было порядка полутора сотен перекрестных goto и доступный соавтор той программы был как раз под 90 и ничем не мог помочь ввиду наступившей забывчивости), но сам по себе goto не может считаться злом. Хотя, сам его всячески избегаю, то бишь и у меня лоб расшибленный))) Наверное, если он и метка рядом (легко ловятся взглядом), то вполне прокатит, если такое решение имеет какой-то смысл по сравнению с альтернативным. За goto не нужно руки отшибать, а нужно просто давать задачки на восстановление алгоритма программы с сотней goto - руки сами по себе после этого отказываются набирать эти магические буквы - goto ![]() P.S. Меня так когда-то отучили есть сникерсы (и вообще эти "шоколадные батончики"). Как-то (ещё в 90-е) крепко напился спиртом абсолют, закусывая сникерсами - с тех пор я эти гадские противные сникерсы видеть не могу.
3
|
|
| 20.10.2020, 12:36 | |
|
Не по теме: Ради интереса проверил сколько goto в моей программе на QBasic, написанной 20 лет назад. Насчитал примерно 200...
0
|
|
|
Заблокирован
|
|
| 20.10.2020, 12:40 | |
|
Пожалуй, имеет смысл сделать тему - "О пользе применения goto в c#" - чтобы там гуру дали чОткие рекомендации какие преимущества дает правильное применение goto.
0
|
|
|
|
|
| 20.10.2020, 12:47 | |
|
titan4ik, Гуру GoTo уже написали https://www.cyberforum.ru/blog... g5875.html
0
|
|
|
Модератор
|
|||
| 20.10.2020, 12:54 [ТС] | |||
|
Там дан конкретный пример для которого собственно и идёт обсуждение. Добавлено через 1 минуту ![]() Добавлено через 5 минут И насколько помню, несмотря на архаичность, Фортран давал (а может и до сих даёт) самый быстрый код для языков высокого уровня.
0
|
|||
| 20.10.2020, 12:54 | |
|
Оператор goto Замена goto
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|