powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Чем плох безусловный переход??
25 сообщений из 109, страница 4 из 5
Чем плох безусловный переход??
    #32972869
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Ну я

Структуризация хорошая. Еще бы неплохо узнать что этот код делает.
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32973033
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переформулирую вопрос чем плох безусловный переход для ассемблера?
Переформулирую вопрос чем плох безусловный переход для С и подобное?
Переформулирую вопрос чем плох безусловный переход для SQL :)?
--

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32973043
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-бы поняли насчет SQL приведу пример для T-SQL:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
USE pubs
GO
DECLARE @tablename sysname
SET @tablename = N'authors'
table_loop:
   IF (@@FETCH_STATUS <> - 2 )
   BEGIN   
      SELECT @tablename = RTRIM(UPPER(@tablename)) 
      EXEC ("SELECT """ + @tablename + """ = COUNT(*) FROM " 
            + @tablename )
      PRINT " "
   END
   FETCH NEXT FROM tnames_cursor INTO @tablename
IF (@@FETCH_STATUS <> - 1 ) GOTO table_loop
GO
--

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32973050
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZrenBy ну я
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
...
      state = label2260;
      break;
    }
   }
   if(state == label2260) break;
  }
  if(state == label2260) break;
...


Понятно, конечно, но ...
Да и мне самому что-то сие покоя не дает. Вроде как подпадает под условие дублирования кода. Но если разрешить два плюса, то можно выбить из вложенного цикла через throw. Или через setjump - longjump.
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32973059
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton2 Ну я

Структуризация хорошая. Еще бы неплохо узнать что этот код делает.
Мне тоже. Для техники трансформации кода это, конечно, до лампочки, но хотелось бы хоть для общей эрудиции.
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32973115
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я mayton2 Ну я

Структуризация хорошая. Еще бы неплохо узнать что этот код делает.
Мне тоже. Для техники трансформации кода это, конечно, до лампочки, но хотелось бы хоть для общей эрудиции.

Пентамино

Для 10x6 у меня выводит 9356 фигур
По ссылке - 2339 решений. 9356/2339 = 4 - отброшены симметричные отображения
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32973482
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Безусловный переход плох только в одном случае - если им злоупотребляют:

а). слишком "далёкие ссылки"
б). много переходов

В противном случае пользуйся наздоровье ;) Плох он только по тому что умный человек откритиковал _злоупотребление_ goto, а куча недоучек, не понимая смысл высказывания, развела болтовню что современные программеры его юзать не должны.

Ещё некоторые умники визжат о вреде #define.
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32973856
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Green2Что-бы поняли насчет SQL приведу пример для T-SQL:
Хм. И зачем тут GOTO, кроме как "ничего другого нет"? Имхо, более нормально это будет выглядеть так:

Код: plaintext
1.
2.
3.
4.
5.
loop
  ...
  exit when tnames_cursor%notfound ;
end loop ;
...
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32973935
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Green2Что-бы поняли насчет SQL приведу пример для T-SQL:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
USE pubs
GO
DECLARE @tablename sysname
SET @tablename = N'authors'
table_loop:
   IF (@@FETCH_STATUS <> - 2 )
   BEGIN   
      SELECT @tablename = RTRIM(UPPER(@tablename)) 
      EXEC ("SELECT """ + @tablename + """ = COUNT(*) FROM " 
            + @tablename )
      PRINT " "
   END
   FETCH NEXT FROM tnames_cursor INTO @tablename
IF (@@FETCH_STATUS <> - 1 ) GOTO table_loop
GO


И действительно, зачем здесь goto ?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
use pubs
go

declare @s          nvarchar( 1000 )
declare @cnt        int
declare @table_name sysname
declare cr          cursor fast_forward for
   select table_name from information_schema.tables

open cr
while  1 = 1  begin
   fetch cr into @table_name
--   if(@@fetch_status != 0)break
   if(@@fetch_status = (- 1 ))break

   if(@@fetch_status != (- 2 ))begin
      set @s = N'select @cnt = count(*) from ' + @table_name
      exec sp_executesql @s, N'@cnt int out', @cnt = @cnt out

      set @s = @table_name + ' = ' + convert(varchar,@cnt)
      print @s
   end
end
close cr deallocate cr
go
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32973946
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИнтеграторЕщё некоторые умники визжат о вреде #define.
Эт тоже больная тема.
Кажется пора составлять чеклист когда попытка заменить макросы приводит к проблемам.
Эх, наболело...
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32973961
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZrenByИ действительно, зачем здесь goto ?
Для этого даже break не нужен :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
declare 
  cnt integer ;
  msg varchar2( 2000 );
begin
  for cr in (select table_name from user_tables order by table_name) loop
    begin            
      msg := '';
      execute immediate 'select count(*) into :cnt from ' || cr.table_name into cnt;
    exception
      when others then cnt := null ; msg := sqlerrm ;
    end;
    dbms_output.put_line ( rpad ( cr.table_name,  30  ) || lpad ( cnt,  10  ) || substr (msg,  1 ,  80 ));
  end loop;
end;          
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32974106
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однако чем плох goto для assembler :)
--

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32974110
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Green2Однако чем плох goto для assembler :)
Для ассемблера он плох одним: не поддерживается. Вместо него следует использовать jmp.
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32974296
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- Нет лучшего способа закомментировать фрагмент бинарного кода как поставить jmp вперед. (Сам пользовался при отладке)

- Некоторое количество операторов jmp на 1k ассемблерного кода способно довести до тихой истерики "юного начинающего крякера".
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32974554
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я ИнтеграторЕщё некоторые умники визжат о вреде #define.
Эт тоже больная тема.
Кажется пора составлять чеклист когда попытка заменить макросы приводит к проблемам.
Эх, наболело...

Угу - больная для тех кто перечитал (и не так ничего и не понял :) ) всяких супер новых книг о мощи ООП
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32975210
Yanis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Некоторое количество операторов jmp на 1k ассемблерного кода
> способно довести до тихой истерики "юного начинающего крякера".

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32977449
roman74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помню мне понравилась фраза из какой-то книги (щас не помню уже какой).

"Одно время велись жаркие споры - использовать ли опреатор goto.
Но исход спора между красотой стиля и элементарным удобством был предрешен."

Мож цитата и неточная - читал давно
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32977782
java solution
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
roman74помню мне понравилась фраза из какой-то книги (щас не помню уже какой).

"Одно время велись жаркие споры - использовать ли опреатор goto.
Но исход спора между красотой стиля и элементарным удобством был предрешен."

Мож цитата и неточная - читал давно

Осталось раскрыть вопросы: что такое "красота стиля" и чьё "элементарное удобство" имеется ввиду, а так же в чью же пользу был предрешён спор по мнению автора и какова позиция автора относительно этого решения.

Я писал на бейсике и мне было хорошо с гоуТу, пока не узнал, что в нём есть процедуры и функции. Что бы использовать гоуТу в логике из if-else нужно быть совсем любителем "элементарных удобств". Оставался выход из дремучей иерархии for-for-for-for, но придумать код, где такие вложенности нужны, задача сама по себе не простая. Тем не менее бывает и такое. В этих случаях гоуТу использовал на ура.
Через 6 лет перешёл на java. break label; избавил и от этой необходимости.
Отсталась одна красота и удобства, а игрушки интересные только изворотливого мозгу были убранны полностью, не осталось даже предмета для спора.
Хотя на самом деле его и не было никогда. Был просто флейм скучающих людей.
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32977824
roman74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я там чуть-чуть опечатался - не "красота стиля" а "чистота стиля". И мнение авторо было примерно такое же, что и у большинства из высказавшихся здесь.

Использовать как можно меньше. Но и не извращаться когда намного проще использовать готу. Он как раз и говорил про вложенные циклы.

И еще - по моему break label мало чем отличается от goto (разве что написанием)
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32978019
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roman74
И еще - по моему break label мало чем отличается от goto (разве что написанием)

Тихо ... Не говори так при поклонниках Жавы ! break label - это очень современно и принципиально отличается от goto А проепроцессор - это устарело и непрактично, причём настолько, что в конце концов разработчики Жавы написали его для себя

ЗЫ споры бессмысленны, здравомыслящий человек пользуется тем, чем ему удобно в конкретной ситуации, а не руководствуется высказываниями о стилях и современности ;)
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32978138
Лазутчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прочитав все 4-е страницы этого топика, я еще раз убедился, что goto оправдано использовать только для выхода из вложенных циклов (и только для этого!). Разработчики Java, выкинув goto, поступили действительно мудро. Вместо goto сделали две замечательных конструкции: break <label> и continue <label> и начинающим программистам Java, особенно тем, которые раньше на бейсике писали, не придет в голову использовать безусловный переход в неподходящих местах. Сами названия операторов (break, continue) говорят уже о том, что применять их нужно только в теле цикла.
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32978224
java solution
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
roman74Я там чуть-чуть опечатался - не "красота стиля" а "чистота стиля". И мнение авторо было примерно такое же, что и у большинства из высказавшихся здесь.

Использовать как можно меньше. Но и не извращаться когда намного проще использовать готу. Он как раз и говорил про вложенные циклы.

И еще - по моему break label мало чем отличается от goto (разве что написанием)

Он отличается тем, что его нельзя использовать ни по какому другому назначению, кроме как выход из циклов. Так же как и continue label, который запускает следующую итерацию нужного цикла.
Так что о схожести с goto речь тут не идёт.
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32978288
java solution roman74Я там чуть-чуть опечатался - не "красота стиля" а "чистота стиля". И мнение авторо было примерно такое же, что и у большинства из высказавшихся здесь.

Использовать как можно меньше. Но и не извращаться когда намного проще использовать готу. Он как раз и говорил про вложенные циклы.

И еще - по моему break label мало чем отличается от goto (разве что написанием)

Он отличается тем, что его нельзя использовать ни по какому другому назначению, кроме как выход из циклов. Так же как и continue label, который запускает следующую итерацию нужного цикла.
Так что о схожести с goto речь тут не идёт.

А почему этот самый break label в Java, может прыгать только на верх, херомантия какая то.

Код: plaintext
1.
2.
3.
4.
5.
6.
label:
      for (;;){
          for (;;){
              break  label;
         }
     }

а если я хочу совсем выйти. Ну тоись вниз.
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32978428
Анти Лазутчик
А почему этот самый break label в Java, может прыгать только на верх, херомантия какая то.

Код: plaintext
1.
2.
3.
4.
5.
6.
label:
      for (;;){ //1
          for (;;){ //2
              break  label;
         }
     }

а если я хочу совсем выйти. Ну тоись вниз.
break никуда не прыгает, это не гоуту. Он завершает выполнение цикла.
В данном случае 1-го.
...
Рейтинг: 0 / 0
Чем плох безусловный переход??
    #32978448
тоись, ты хочешь сказать, что после выполнения break label; (в данном примере) мы не будем входить в тело 1-го цикла, то есть пропустим эту парочку(for; for) и пойдем дальше?
...
Рейтинг: 0 / 0
25 сообщений из 109, страница 4 из 5
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Чем плох безусловный переход??
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]