![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 31.01.2010
Сообщений: 29
|
![]()
Можно ли при написании современных программ использовать оператор
goto. И не могу понять почему все так избегают этот оператор как злую собаку. Все равно на низком уровне после дизассемблирования там же есть что то вроде jmp,jz,jnz(тоже goto). Так почемсу же на ЯВУ нельзя?
Все идеальное просто
|
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Потому чо считается что он усложняет анализ сложных программ глазами.
а так конечно можно, используй скок влезет, еси конечно твой компилятор его поддерживает.
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
![]()
goto использовать можно и при написании современных, и доисторических программ. Но необходимо помнить, что goto может очень сильно запутать структуру программы, а при неграмотном использовании может привести к катастрофе.
Кроме того, для решения большинства задач, в которых вы можете использовать goto существуют явные конструкции языка, реализующие все что нужно непосредственным образом (например, циклы). Впрочем, его действительно использовать можно использовать в некоторых случаях, где не существует более изящных решений, но необходимо использовать одно правило - осуществлять переход только вперед, иначе можно перейти в очень неожиданные места и получить очень трудноотлавливаемые ошибки. Собственно - где действительно можно использовать goto - это, например, во вложенных циклах. Скажем, нужно вам найти в трехмерном массиве определенный элемент (зачем - не знаю): Код:
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 03.01.2010
Сообщений: 229
|
![]()
чаще goto используется в парсерах текста. к примеру
Код:
подпись
Последний раз редактировалось liljon; 14.07.2010 в 14:46. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 24.03.2009
Сообщений: 215
|
![]()
Практически во всех ИДЕ Вы можете выделить нужное количество строк, ткнуть в кнопку таб и к ним ко всем добавится один отступ.
wyvern@localhost:~$ sudo emerge --unmerge world
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 03.01.2010
Сообщений: 229
|
![]()
а я и не говорил что отодвигаю по одной строке.
подпись
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 24.03.2009
Сообщений: 215
|
![]()
Occam's razor, huh...
Код:
wyvern@localhost:~$ sudo emerge --unmerge world
Последний раз редактировалось wyvern; 14.07.2010 в 15:16. |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 03.01.2010
Сообщений: 229
|
![]()
можно и так.
подпись
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 24.03.2009
Сообщений: 215
|
![]()
Что значит "можно" и так?
Мне пришлось потратить не одну минуту, чтобы понять, что в Вашем коде выполняется после чего... Был бы алгоритм сложнее - он в принципе перестал бы быть поддерживаемым... Это шикарный пример того, как НЕ надо использовать этот долбаный оператор, если не горишь желанием подпортить жизнь человеку, который будет за тобой код править...
wyvern@localhost:~$ sudo emerge --unmerge world
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 03.01.2010
Сообщений: 229
|
![]()
Более сложный пример для goto.
Код:
подпись
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Паскаль. использование условного оператора в теле операторов цикла с условием и после него | машко | Помощь студентам | 1 | 22.06.2009 00:52 |
использование условного оператора после операторов цикла с условием | машко | Помощь студентам | 8 | 21.06.2009 23:59 |
использование условного оператора в теле оператора цикла с условием | машко | Помощь студентам | 2 | 21.06.2009 23:55 |
Использование оператора условия | Virtson | Microsoft Office Access | 2 | 15.12.2006 16:13 |