Re[7]: жизнь не перестает удивлять
От: CreatorCray  
Дата: 24.10.23 02:38
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Это точно не базовые конструкции языка

CC>>Это как раз самые что ни на есть базовые.
C>Расскажи мне, в чем смысл писать индексацию как

Т.е. ты признаёшь что это базовое свойство языка?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[8]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 24.10.23 02:48
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Т.е. ты признаёшь что это базовое свойство языка?


Извращения к числу базовых конструкций не относятся. Знать их новичкам точно не надо. А за использование надо бить палкой, чтобы лучше доходило.
Ну так на вопрос ты ответить в состоянии?
Ад пуст, все бесы здесь.
Re[9]: жизнь не перестает удивлять
От: CreatorCray  
Дата: 24.10.23 04:00
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Извращения к числу базовых конструкций не относятся.

Что значит извращения?
Это легальное свойство языка. Особенно тернарный оператор.

C>Ну так на вопрос ты ответить в состоянии?

Перевод темы вопросом не считается.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re: жизнь не перестает удивлять
От: oncer  
Дата: 24.10.23 08:43
Оценка: +4
Здравствуйте, Codealot, Вы писали:

"цикл с выходом из середины" — лексика странная. Чел вполне мог не понять. Особенно, если чел читает книги на Инглише, а тут .... "цикл с выходом из середины" — я тож такую формулировку впервые слышу...
Может "прерывание цикла" было бы понятнее?
Re[10]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 24.10.23 15:13
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Что значит извращения?

CC>Это легальное свойство языка. Особенно тернарный оператор.

Где ты видишь тернарный оператор в приведенной мной цитате? Хватит юлить. Отвечай на вопрос.
Ад пуст, все бесы здесь.
Re[2]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 24.10.23 15:13
Оценка:
Здравствуйте, oncer, Вы писали:

O>"цикл с выходом из середины" — лексика странная. Чел вполне мог не понять. Особенно, если чел читает книги на Инглише, а тут .... "цикл с выходом из середины" — я тож такую формулировку впервые слышу...

O>Может "прерывание цикла" было бы понятнее?

Как я уже сказал, чувак просто смотрел на код. Не надо высасывать из пальца.
Ад пуст, все бесы здесь.
Re[11]: жизнь не перестает удивлять
От: CreatorCray  
Дата: 25.10.23 04:59
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Где ты видишь тернарный оператор в приведенной мной цитате?

Я обсуждаю всё ещё вот это:

C>Это точно не базовые конструкции языка


C> Хватит юлить. Отвечай на вопрос.

Ты не задал вопрос, ты попытался соскочить с темы. Но не вышло.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: жизнь не перестает удивлять
От: cthsq  
Дата: 25.10.23 15:23
Оценка:
сто лет на квыт не заходил
но меня порадовало когда увидел что тут всё те же люди всё так же из малюсенькой фразы раздувают километровое обсуждение)
как будто был тут вчера
Re[3]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 25.10.23 15:59
Оценка: +2
Здравствуйте, cthsq, Вы писали:

C>сто лет на квыт не заходил

C>но меня порадовало когда увидел что тут всё те же люди всё так же из малюсенькой фразы раздувают километровое обсуждение)
C>как будто был тут вчера

Эликсир вечной молодости, однако.
Re[3]: жизнь не перестает удивлять
От: CreatorCray  
Дата: 25.10.23 20:58
Оценка:
Здравствуйте, cthsq, Вы писали:

C>сто лет на квыт не заходил

C>но меня порадовало когда увидел что тут всё те же люди всё так же из малюсенькой фразы раздувают километровое обсуждение)
Я было пропустил недельку и насрали столько что только недавно разгрёб
И то пришлось на все темы авторства Shmj сразу пометки "прочитано" и "не показывать больше" поставить
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[12]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 26.10.23 17:27
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Ты не задал вопрос, ты попытался соскочить с темы. Но не вышло.


Нет дружок, с темы пытаешься соскочить только ты.
Извращения не входят в число базовых знаний. Что тут может быть непонятно?
Ад пуст, все бесы здесь.
Re[5]: жизнь не перестает удивлять
От: rg45 СССР  
Дата: 27.10.23 14:28
Оценка: +2
Здравствуйте, Философ, Вы писали:

Ф>break, return, goto, throw знаю, а вот "цикл с выходом из середины" — какая-то непонятная хрень. Никогда не слышал.

Ф>Какой-то новый термин.

"Цикл с выходом из середины" — это то, ЧТО нужно получить, а break, return, goto и throw — это то, КАК этого можно достичь. Топик стартера в большей мере интересовало "что", а не "как", вот и все.
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 10.11.2023 1:51 rg45 . Предыдущая версия . Еще …
Отредактировано 27.10.2023 14:42 rg45 . Предыдущая версия .
Re[3]: жизнь не перестает удивлять
От: fk0 Россия https://fk0.name
Дата: 28.10.23 12:37
Оценка: :)
Здравствуйте, Codealot, Вы писали:

Н>>Break что ли?

C>Естественно. А чем еще это может быть?

Выход из функции по-исключению выброшенному из signal-handler'a!

Н>>Ну может он просто не понял тебя.

C>Он смотрел на код и сказал "а что это за странная штука и зачем нужна?"

Я отчасти с ним согласен. break -- по-сути есть замаскированный goto, нарушающий принципы структурного программирвоания.
Re[5]: жизнь не перестает удивлять
От: fk0 Россия https://fk0.name
Дата: 28.10.23 12:53
Оценка:
Здравствуйте, Codealot, Вы писали:

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


Pzz>>Нет.


C>Вероятно, там предложат сделать добавочный флаг для выхода и вытащить часть переменных из цикла. Но люди без склонности к сектанству так не делают.


Предложу не стесняться, и написать сразу лямбду.
Re: жизнь не перестает удивлять
От: fk0 Россия https://fk0.name
Дата: 28.10.23 13:03
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Общался тут с одним чуваком по поводу ревью кода, и он не понимает, что такое цикл с выходом из середины. Вообще не знает, что это такое и зачем может быть нужно.


Тоже поплачусь.

Работая в одной безусловно крупной софтовой фирме очень сильно удивил на код-ревью оператором do-while
без фигурных скобок. Условно: "do *x != y; while(++x);".

А уж объяснить, что в языках C/C++ есть понятие временного значения (например, возвращаемого из функции)
у которого есть в свою очередь понятие срока жизни -- вообще трудно. Не говоря уж о том, что на это
временное значение могут существовать ссылки/указатели, у которых тоже срок жизни...
Re[4]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 05.11.23 17:58
Оценка:
Здравствуйте, fk0, Вы писали:

fk0> Я отчасти с ним согласен. break -- по-сути есть замаскированный goto, нарушающий принципы структурного программирвоания.


На самом деле нет. Но фанатикам нюансы не интересны.
Ад пуст, все бесы здесь.
Re[4]: жизнь не перестает удивлять
От: karbofos42 Россия  
Дата: 08.11.23 07:15
Оценка: 7 (2) :)
Здравствуйте, fk0, Вы писали:

fk0> Я отчасти с ним согласен. break -- по-сути есть замаскированный goto, нарушающий принципы структурного программирвоания.


А циклы сами по себе — это тоже по сути замаскированные goto/jmp.
Как с ними не нарушать принципов структурного программирования?
Re[5]: жизнь не перестает удивлять
От: fk0 Россия https://fk0.name
Дата: 08.11.23 10:26
Оценка: :)
Здравствуйте, karbofos42, Вы писали:

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


fk0>> Я отчасти с ним согласен. break -- по-сути есть замаскированный goto, нарушающий принципы структурного программирвоания.


K>А циклы сами по себе — это тоже по сути замаскированные goto/jmp.

K>Как с ними не нарушать принципов структурного программирования?

В этой теме кто-то сказал, что структурное программирование -- это когда программа
строится из кубиков имеющих один вход и типично один (циклы), два (условный оператор)
или множество (switch) выходов. Мне такое определение понравилось. break/goto нарушают этот принцип.
Re[5]: жизнь не перестает удивлять
От: fk0 Россия https://fk0.name
Дата: 19.11.23 12:37
Оценка:
Здравствуйте, karbofos42, Вы писали:

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


fk0>> Я отчасти с ним согласен. break -- по-сути есть замаскированный goto, нарушающий принципы структурного программирвоания.


K>А циклы сами по себе — это тоже по сути замаскированные goto/jmp.

K>Как с ними не нарушать принципов структурного программирования?

Нет. Есть принципиальная разница между циклом с goto и циклом с использованием операторов структурного программирования:
при использовании последних все объекты создаваемые в цикле, в каждом цикле вначале заново инициализируются, а в конце
цикла неявным образом уничтожаются. И вообще могут иметь разные адреса в каждом цикле. А с goto получается чёрти что.
Re[6]: жизнь не перестает удивлять
От: karbofos42 Россия  
Дата: 20.11.23 08:49
Оценка:
Здравствуйте, fk0, Вы писали:

fk0> Нет. Есть принципиальная разница между циклом с goto и циклом с использованием операторов структурного программирования:

fk0>при использовании последних все объекты создаваемые в цикле, в каждом цикле вначале заново инициализируются, а в конце
fk0>цикла неявным образом уничтожаются. И вообще могут иметь разные адреса в каждом цикле. А с goto получается чёрти что.

цикл на нижнем уровне — это просто условный переход jmp или как там уж это называется.
бесконечный цикл может быть представлен как безусловный переход goto.
И выполнение функции — это тоже переход на нужный адрес в памяти.
Всё это управление стеком, инициализацию переменных, очистку памяти,... добавляет компилятор.
Никто не мешает этому самому компилятору нормально обрабатывать и goto и уведомлять о существующих проблемах.
Собственно, в C# goto из цикла превращается в break.
А без дублирования return или break, как в структурном программировании предлагается сделать банальный поиск элемента в массиве?
int FindIndex(int[] arr, int value)
{
  for (int i = 0; i < arr.Length; ++i)
  {
    if (arr[i] == value)
      return i;
  }
  return -1;
}

даже если первый элемент подойдёт, продолжим пробегать всю коллекцию, чтобы было структурно и молодёжно?
int FindIndex(int[] arr, int value)
{
  int result = -1;
  for (int i = 0; i < arr.Length; ++i)
  {
    if (result == -1 && arr[i] == value)
      result = i;
  }
  return result;
}

А то ведь return внутри цикла может привести к тому, что разработчик что-то забудет удалить или сделать, должна быть одна точка выхода из функции.
Я сам как-то goto не использую и редко такое нужно, но вот думаю: а зачем я для выхода из вложенных циклов горожу флаги и леплю лишние проверки, когда можно просто goto написать и перейти в нужную точку.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.