Циклы криво реализованы. И вот почему.

Поделиться
HTML-код
  • Опубликовано: 12 сен 2024
  • Подпишись на наш Telegram Канал 🖤 t.me/extremecode
    В этом видео я объясняю за циклы во всех языках программирования. Какие они бывают, зачем они нужны и самое главное, почему они не совсем нужны. Да они же НЕПРАВИЛЬНО СПРОЕКТИРОВАНЫ!
    Лицензия Creative Commons Attribution 4.0 на использование трека Hyperfun (исполнитель: Kevin MacLeod): creativecommon...
    Источник: incompetech.com...
    Исполнитель: incompetech.com/

Комментарии • 762

  • @ExtremeCode
    @ExtremeCode  7 месяцев назад +11

    Братан, хорош, давай подпишись на наш Telegram канал, мы там байки и кулстори травим
    🖤 t.me/extremecode
    А для бустеров у нас есть эксклюзивный контент: boosty.to/extremecode

    • @LithiumDeuteride-6
      @LithiumDeuteride-6 7 месяцев назад

      Реально, есть только cycle(){...} а какой цикл уже по контексту.
      cycle(a

    • @101picofarad
      @101picofarad 2 месяца назад

      В матлабе for используется для автоматического расщепления на параллельные потоки. Если прогер не пытается изобразить из фора вайл, то компилятор сам раскидает итератор по ядрам и соберет обратно в вектор ответа. А если прогер тупит, то ткнет его носом и скажет что этот кот он параллелить не будет по вот такой причине.

  • @user-pl1tb5gp3r
    @user-pl1tb5gp3r 7 месяцев назад +1208

    Программирую 10 лет. Сегодня впервые узнал про циклы! Топ контент!

    • @user-qwc4yy3xs7d
      @user-qwc4yy3xs7d 7 месяцев назад +124

      Вот они nocode программисты

    • @myriaxont
      @myriaxont 7 месяцев назад +18

      Сразу видно - ФП-шник.

    • @user-yn1gk6qw7l
      @user-yn1gk6qw7l 7 месяцев назад +10

      Ска... я завис. Не могу понять.. Хочу ли я это развидеть??

    • @ildar5552
      @ildar5552 7 месяцев назад +129

      10 лет программирую на 1с. Сегодня впервые узнал, что есть ещё и другие языки программирования! Топ контент!

    • @Tdmmilestone
      @Tdmmilestone 7 месяцев назад +5

      Какие еще циклы? 😳

  • @i-am-ultra
    @i-am-ultra 7 месяцев назад +265

    Далее в программе: видео о ide, видео о переменных, видео о условных операторах

    • @bulinchik1889
      @bulinchik1889 7 месяцев назад +8

      А видео о переменных уже есть, смотрите на канале

    • @i-am-ultra
      @i-am-ultra 7 месяцев назад

      @@bulinchik1889 программирование для маленьких и тупых вернулось, но в этот раз для ещё более маленьких и ещё более тупых

    • @whyyyyyyyyyyyyyyyyyyyyyyyyyyry
      @whyyyyyyyyyyyyyyyyyyyyyyyyyyry 7 месяцев назад +3

      Скоро доберемся до списков... а там через кордан и в вывод/ввод данных и на свободу

    • @evgeniygorkaviy4690
      @evgeniygorkaviy4690 7 месяцев назад +2

      О фишках Windows, о которых мы не знали.

    • @neveryirosold3958
      @neveryirosold3958 7 месяцев назад

      ​@@bulinchik1889😅

  • @_aDeer_
    @_aDeer_ 7 месяцев назад +315

    жду следующий видос про основу всего программирования - про комментарии в коде

    • @EvgenOl
      @EvgenOl 7 месяцев назад +27

      Особенно про те, удаление которых крашит код :)

    • @BeDb_MeDb
      @BeDb_MeDb 7 месяцев назад +3

      А че, еще и комментировать можно было?:-D

    • @juke_crusader
      @juke_crusader 7 месяцев назад +11

      Уже пять лет жду видео о том, как компилировать мой код на пайтоне (я пишу в блокноте)

    • @evgeniygorkaviy4690
      @evgeniygorkaviy4690 7 месяцев назад +1

      Комментарии - зло. Код надо документировать.

    • @shishlinsv
      @shishlinsv 7 месяцев назад +1

      И про документирование кода!
      (summary)

  • @tozpeak
    @tozpeak 7 месяцев назад +278

    Щас бы доебаться к фору за то, что он обеспечивает видимость переменных счётчика в рамках заголовка и тела цикла. Чтобы какой-нибудь умник не пошёл использовать счётчик предыдущего цикла у себя без переинициализации. И организацию проверки с изменением счётчика в одной строке, чтобы не бегать в конец 100500 строчного цикла.

    • @Sunr1sen2
      @Sunr1sen2 7 месяцев назад +9

      С языка снял

    • @BeDb_MeDb
      @BeDb_MeDb 7 месяцев назад +18

      К циклам я претензий не имею. Тот же repeat например и пр. А вот к их использованию, когда человек явно должен просто по всем элементам пройтись без создания нового списка измененных значений (привет люди которые считают, что map ровно такой же а то и быстрее forEach) они есть. Собственно, если это есть, значит кому-то оно было нужно и либо ты не столкнулся с местом где это нужно, либо не понимаешь/чувствуешь концепцию. Мы же сами заложники привычек. Неявно читаемую идею, что хватит вносить в языки на каждый чих оббертку - поддерживаю. Потом в таком лесу состаришься. В общем идей в видосе много, но тема сисек не раскрыта.

    • @evgeniygorkaviy4690
      @evgeniygorkaviy4690 7 месяцев назад +3

      Чтобы умник не переиспользовал счётчик, счётчик должен существовать только в контексте тела цикла. Во взрослых языках всё для этого сделано. Кривые руки, конечно, никто не отменял.

    • @azhonoredground9855
      @azhonoredground9855 7 месяцев назад +2

      Это прямо как с неявной типизацией через var. Вроде функционально тоже самое что и явная, а при проверке приходится после этого искать источник и во что он конвертируется

    • @hunterofthedemon
      @hunterofthedemon 7 месяцев назад +1

      Здарова Свен ​@@Sunr1sen2

  • @extradip8587
    @extradip8587 7 месяцев назад +150

    Вообще ни о чем видео, претензия к for и другим операторам просто идиотская: "давайте вместо простых и понятных операторов для определенных ситуаций всегда использовать один и тот же и костылями его приводить к тому, от чего мы отказались, чтобы ну это самое ну просто"; про goto тезиса никакого не увидел, просто упомянулся зачем-то; а "не используйте коллекции в качестве циклов" просто невероятная мысль. Ни развлекательный, ни познавательный и не контент. Мусор

    • @AlexandroLavichez
      @AlexandroLavichez 7 месяцев назад +29

      Согласен, автор дегенерат

    • @rebrov_vyacheslav
      @rebrov_vyacheslav 7 месяцев назад +27

      @@AlexandroLavichez скорее провокатор, вкидывая очевидную дичь, пытается накрутить комментов.. как видим даже чутка получается

    • @chakchaky8521
      @chakchaky8521 6 месяцев назад +1

      Да, соглашусь тут... До гото докатился автор... Я с гото начинал... действительно полная дичь...но её уже нету лет так 20.

    • @Бальбулий
      @Бальбулий 6 месяцев назад +8

      видос только для того чтобы вставить рекламу гайс вы шо не поняли?

    • @MrChelovek68
      @MrChelovek68 6 месяцев назад +2

      Ну,не считая этого видео, человеки очень любят бить себя по рукам,пытаясь редуцировать имеющийся базис инструментов. Срачи о линупсе вс виндовс вс макос,срачи о виме и ide.

  • @chuprikovs30
    @chuprikovs30 7 месяцев назад +103

    Голосом Линдемана: "Do... Do While... Do While For..."

    • @user-mf9bf9fi8z
      @user-mf9bf9fi8z 6 месяцев назад +21

      Do While For GoTo...
      Do While For GoTo...
      Do While For GoTo...

    • @thenatron6136
      @thenatron6136 6 месяцев назад +14

      ... und filter map reduce!

    • @blackhole_programmers
      @blackhole_programmers 4 месяца назад +3

      Вы боги!!!!

    • @user-mf9bf9fi8z
      @user-mf9bf9fi8z 4 месяца назад +3

      @@blackhole_programmers ну что вы, какие боги, так, просто ангелы, гыгы

  • @ulysses.apokin
    @ulysses.apokin 7 месяцев назад +65

    "Все держится на циклах"
    Haskell: 😮😮

    • @redofficiale
      @redofficiale 7 месяцев назад

      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      Haskell: 😮😮
      ...

    • @DrezdenHC
      @DrezdenHC 5 месяцев назад +2

      Топ 10 комерческих програм на хаскеле.

  • @merovingen4546
    @merovingen4546 7 месяцев назад +47

    во что бы там код не разворачивался и не компилился, сахар на то и сахар, что бы мне как разработчику одни и те же вещи было проще писать, а уже если мне нужно упороться то я напишу той конструкцией, которая подойдёт лучше

    • @chakchaky8521
      @chakchaky8521 6 месяцев назад

      Ты просто не понял сути - автор говорит что языку достаточно одного for для всего. А while это пережитки древней цивилизации. Сегодня этот цикл while ни к чему вообще. Его бы по хорошему выкорчевать из будущих версий языков...тут я даже соглашусь

    • @ТеодеусМорисон
      @ТеодеусМорисон 6 месяцев назад

      ​@@chakchaky8521машина использует goto. Цикл for/while вам даёт транслятор в псевдокод после дизассемблирования, чтобы читать было удобнее.

  • @michaelinuente92
    @michaelinuente92 7 месяцев назад +57

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

    • @user-bi4eo3ys1f
      @user-bi4eo3ys1f 6 месяцев назад +4

      Вообще-то ещё для лучшей исправляемости. И рисуемости в виде блок-схемы без пересечений. Хотя некоторые алгоритмы с использованием гоуту проще и понятнее, чем без.

    • @michaelinuente92
      @michaelinuente92 6 месяцев назад

      @@user-bi4eo3ys1f какой ещё "рисуемости"? :) тогда уже "диаграммности" :) и "читабельность" предполагает "исправляемость" :)

    • @michaelinuente92
      @michaelinuente92 6 месяцев назад

      @@user-bi4eo3ys1f к слову о "диаграммости", во времена Рюрика действительно писали мега методы, кои монахи изображали в виде диаграмм.
      но после изобретения Калашникова за попытку написания сходных трактатов программист получает с вертушки в ухо.
      больше двух "if" - расстрел. поэтому диаграмм на методы не рисуют :)

  • @iii8176
    @iii8176 7 месяцев назад +43

    10 лет писал на двоичном коде, впервые узнал о циклах!! топ контент.

  • @RusSaboteur
    @RusSaboteur 7 месяцев назад +15

    Рекурсия где?! Где рекурсия я спрашиваю?! Функциональное программирование для кого изобрели, м?
    Все циклы можно реализовать рекурсией. Все циклы - синтаксичечкий сахар. Change my mind

    • @daiske2867
      @daiske2867 7 месяцев назад +2

      там где рекурсия бесплатная да, но не все языки haskell и пролог

    • @RusSaboteur
      @RusSaboteur 7 месяцев назад

      @@daiske2867 scala?

    • @user-xj9hn3fg8n
      @user-xj9hn3fg8n 7 месяцев назад +5

      Все циклы можно реализовать переставляя поинтер на стеке, come on

    • @arhitutorials
      @arhitutorials 7 месяцев назад

      Респект братан! Рекурсию то забыли бородатые синьоры)

    • @Senteggo
      @Senteggo 7 месяцев назад +1

      Все функции в целом - синтаксический сахар. Change my mind

  • @herman2lv
    @herman2lv 7 месяцев назад +9

    А куда скидывать деньги на лечение?

  • @user-bb9go8bi9e
    @user-bb9go8bi9e 7 месяцев назад +14

    Жаль автор не в курсе но на уровне железа цикл FOR реализуется командой LOOP, а While и прочее реализуется методом JMP (это аналог GOTO на ассемблере), тут я говорю про архитектуру х86, цикл FOR везде тащат из-за того что у него есть своя аппаратная реализация.

    • @gunsncodes6665
      @gunsncodes6665 2 месяца назад +3

      И что быстрее? Loop или jmp?

    • @user-bb9go8bi9e
      @user-bb9go8bi9e 2 месяца назад

      @@gunsncodes6665 команда loop за такт выполняет уменьшение счетчика на единицу, сравнение, и переход на нужный адрес кода, jmp выполнит только переход, вам нужен еще такт чтобы выполнить уменьшение счетчика и еще один чтобы выполнить сравнение, а еще что то подсказывает мне что конвейер будет быстрее работать с loop

    • @amogus6002
      @amogus6002 2 месяца назад

      @@gunsncodes6665 Гениально, задавать вопрос спустя четверть года

    • @ardni1
      @ardni1 2 месяца назад +1

      А что блин значит на уровне железа? Loop это ассемблер команда и есть. Да только for в нормальных яхыках (всех) никогда не детерминирует условие окончания как значение счетчика, там не всегда как бы счетчик, допускается любое условие. И поэтому реализовать такое можно только проверкой и прыжком

    • @user-bb9go8bi9e
      @user-bb9go8bi9e 2 месяца назад

      @@ardni1 значит то что процессор за так уменьшит значение счетчика, проведет сравнение с нулем и выполнит JMP, и как раз нормальные языки ориентированные на железо всегда приводят for к каноническому виду, когда счетчик начинается с N и заканчивается на 0, попутно перестраивая все индексы внутри цикла чтобы сохранить логику

  • @falser20
    @falser20 7 месяцев назад +34

    Круто, теперь можно снять про переменные, ссылки и обязательно покуракерать, что в моем любимом петухончике нет констант

    • @TheTheMrkpyt
      @TheTheMrkpyt 7 месяцев назад +1

      Возникает философский вопрос, а есть ли в C# константы, если в нём так развито мето программирование и рефлексия

    • @ankagris4689
      @ankagris4689 7 месяцев назад

      Так есть видос про переменные

    • @falser20
      @falser20 7 месяцев назад

      @@ankagris4689 там нет заглядывания внутрь до уровня регистров в ассемблере или работы с указателями как в C. А ведь это база

    • @user-cr8rp6xj2l
      @user-cr8rp6xj2l 7 месяцев назад

      Можно сделать свой класс или стандартно через pip install

    • @qwertymangames1800
      @qwertymangames1800 6 месяцев назад

      В петухончике нет классического цикла for, так как он работает по логике foreach ВСЕГДА. И соответственно бесконечного цикла на нём не сделать тоже.

  • @AIFT_Staff
    @AIFT_Staff 7 месяцев назад +20

    о, спустя 6 часов после выхода видео переименовал его, до этого оно называлось "Кривая основа всех языков программирования"

    • @hollow.one.w
      @hollow.one.w 7 месяцев назад

      Ну надо кликбейтить, это же ютуб

    • @ankagris4689
      @ankagris4689 7 месяцев назад +1

      Этого никогда не было. Видео всегда называлось так

    • @hollow.one.w
      @hollow.one.w 7 месяцев назад

      @@ankagris4689 ну и как теперь верить людям...

  • @progressive_agriculture
    @progressive_agriculture 7 месяцев назад +11

    При тех тормозах, какие создают современные языки программирования, придираться к скорости разнообразных циклов нет смысла. А синтаксический сахар для того и нужен, чтоб легче писать было. Оно логичней. Хотя можно любой перебор через любой реализовать.

    • @user-xj9hn3fg8n
      @user-xj9hn3fg8n 7 месяцев назад

      В чем проблема современных ЯП? Если в python/js всё объект - это не проблема языка. А проблема того кто использует голый for для многомерных массивов в том же python

    • @progressive_agriculture
      @progressive_agriculture 7 месяцев назад

      @@user-xj9hn3fg8n а Вы с какой целью его применить собираетесь? Каждый инструмент хорош для своего дела. И Python без библиотек написанных на с/с++ ни чем ни лучше старого basic. А реализовать на с++ любые списки и коллекции - ни каких проблем.

    • @user-iw1ty8sk1v
      @user-iw1ty8sk1v 7 месяцев назад

      @@user-xj9hn3fg8n > Если в python/js всё объект - это не проблема языка
      Угу, проблема лишь в том что это проблема рантайма этого языка.

  • @nnnvrmnd
    @nnnvrmnd 6 месяцев назад +5

    Братан, хорош! Давай давай вперед! Контент кайф, можно ещё? Вообще красавчик. Можно вот этого вот почаще? Давайте, пока!

  • @froller
    @froller 3 месяца назад +3

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

  • @zmirk
    @zmirk 7 месяцев назад +11

    Да я с помощью GOTO 23 года назад первую игру написал на бэйсике... ээх, были времена.

    • @SilentPrayerCG
      @SilentPrayerCG 7 месяцев назад +1

      Еще go sub был, но он уже забыт... (наверное, я хз на самом деле)

    • @user-bi4eo3ys1f
      @user-bi4eo3ys1f 6 месяцев назад

      @@SilentPrayerCG Ну, это вызов подпрограмм в бейсике. Как в PL/1 CALL , или в фортране. Люди тогда ещё не догадывались, что вызывать подпрограммы можно просто по их имени, а не специальным оператором.

    • @SilentPrayerCG
      @SilentPrayerCG 6 месяцев назад

      @@user-bi4eo3ys1f я знаю что это, я к тому что, не уверен остался ли этот рудемент в каких-то современных языках или нет. В vb его уже нет.

  • @Ruzakisan
    @Ruzakisan 7 месяцев назад +67

    я поставлю Hyperfun на звонок если этот комментарий наберет 665 с половиной лайков

    • @comrade137
      @comrade137 7 месяцев назад

      Можешь поставить так, только пальцы выпрашиваешь.

    • @SklerozRu
      @SklerozRu 7 месяцев назад

      Саундтрек из Горбатой Горы поставь

  • @EvgenOl
    @EvgenOl 7 месяцев назад +6

    Ну коли три вида цикла не нужны, и ты предлагаешь оставить только 1, то пошли дальше. Давай уберём все! Ведь их легко заменяет goto. А потом и его отменим и пересядем все на ассемблер :)

    • @mokaakasia4636
      @mokaakasia4636 7 месяцев назад +1

      Базу выдал. Предлагаю еще отметить конструкции try catch , if , вызов функций , так как они тоже по факту оболочка для goto. Ну ладно , нужны еще условные переходы типа jnz, но это не важно.

  • @fordin3726
    @fordin3726 7 месяцев назад +55

    Братан, хорош, давай, давай вперед! Контент в кайф, можно ещё? Вообще красавчик!

    • @MrReadManiac
      @MrReadManiac 7 месяцев назад +12

      Можно вот этого вот почаще?

    • @dandyhorsse
      @dandyhorsse 7 месяцев назад +1

      Давайте, пока!

    • @anon_commentator
      @anon_commentator 7 месяцев назад +3

      Как же хорошо, что его видосы набирают всё меньше просмотров. А то я уже задолбался во всех уголках интернета находить эту фразу.

  • @Raspredval1337
    @Raspredval1337 7 месяцев назад +8

    нам этот ваш цикул и совсем не нужон, даешь рекурсию 😎 🤡

    • @gameworld7650
      @gameworld7650 2 месяца назад

      И твой компутер взрывает ся 🎉🎉🎉

  • @rar24
    @rar24 7 месяцев назад +33

    когда видос про энвелоуп

    • @ПашаИвлев
      @ПашаИвлев 7 месяцев назад +1

      Комент в топ!!

    • @Никита-п1й8й
      @Никита-п1й8й 7 месяцев назад +3

      Давно интересует эта тема, но в интернете никак не могу найти толкового гайда

  • @grifon187
    @grifon187 4 месяца назад +1

    -насколько идиотское видео вы хотите?
    -да

  • @user-wh1tt7cd1b
    @user-wh1tt7cd1b 7 месяцев назад +4

    До этого видео использовал в коде только мотоциклы. Спасибо вам!

  • @dv3148
    @dv3148 6 месяцев назад +3

    Пустое это всё, суета. Займитесь делом

  • @fahrenheit1863
    @fahrenheit1863 7 месяцев назад +8

    Я вообще не программист, случайно увидел видос. Но разве под капотом у map, reduce и filter не цикл или goto - jmp? Еще вроде как можно зациклить код рекурсией, или это другое?
    А разве под капотом операторов for и while не используется тот самый goto - jmp?

    • @progressive_agriculture
      @progressive_agriculture 7 месяцев назад +6

      Циклы - надстройка над ассемблером, или машинными кодами. Логика циклов языков высокого уровня в том, что у него фиксированный вход в начале и фиксированный выход в конце. Прервать breake можно, но все равно попадаешь в конец цикла. А эмуляция цикла через goto позволяет с любого места отправиться в любое, причем, хоть из середины одного "цикла" в середину другого "цикла". Использование for и while и отказ от goto позволяет избежать таких косяков. Чтоб не плодить ошибки.

    • @Senteggo
      @Senteggo 7 месяцев назад +4

      понятное дело, что циклы под капотом у map, reduce и тд, и вероятно goto под капотом у циклов, к чему ты это написал? А про рекурсию - странно, что автор видео про нее не вспомнил

    • @shatalinator
      @shatalinator 7 месяцев назад +2

      Если в рекурсивной функции нет условия её прерывания, она будет выполняться бесконечно долго. Под "бесконечно долго" подразумевается "пока не переполнится стек вызова".

    • @dmitrii-329d
      @dmitrii-329d 7 месяцев назад

      В том же лиспе нет циклов, но есть хвостовая рекурсия, если мне не изменяет память

    • @user-ry5oh3qt2u
      @user-ry5oh3qt2u 7 месяцев назад +2

      Рекурсия-зло, пару тысяч раз рекурсия сработает и бам: стекоферфлоу

  • @_curtman
    @_curtman 7 месяцев назад +4

    Я не понял, а о чём видос то?

    • @paztwel
      @paztwel 6 месяцев назад

      Типа не используйте циклы для работы с массивами.
      Или хз, автор чушь какую-то несёт ради рекламной интеграции

  • @tohoto2183
    @tohoto2183 7 месяцев назад +5

    Честно говоря так и не понял ,что хотели сказать ExtremeCode . Они имели ввиду циклы вообще или только определенного языка?

    • @MrCter
      @MrCter 7 месяцев назад +26

      не стоит искать смысл там, где его нет ) главное - реклама есть

    • @OlegTar
      @OlegTar 7 месяцев назад

      циклы вообще

    • @paztwel
      @paztwel 6 месяцев назад

      Речь идёт про циклы при работе с массивами.
      Вообще это бред высосанный из пальца.

  • @user-ef7om8pq6t
    @user-ef7om8pq6t 7 месяцев назад +3

    Согласен со всем, кроме того, что сахар - плохо (в меня полетят камни, и да, я питонист).
    Ну в чем проблема двух вариаций вайла? Заботой о "новичках" можно пренебречь, к этому привыкнуть за 2-3 issue можно.
    Но это же очень круто, что можешь писать так, как хочешь (и вот не надо говорить, что питон кринж, у меня на js 6 микросервисов написано, на плюсах год работал, работаю хардкорно под unix'ом, а вторая работа - анализ yocto и biuldroot, так что я разного наелся за профессиональную жизнь)))
    Но вот в чем проблема сахара? Ну окей, новичку не понятны правила игры - учись и станут понятны. Но программисту, который не хочет драться с ЯП за организацию каких-то базовых приколов... Ну вот хочу писать фор, пишу, хочу писать вайл, пишу, хочу работать с множествами, фроузен множествами, словарями, списками, массивами, деревьями - я с помощью сахара это делаю по щелчку пальцев, как и множественные перегрузки и обилия самоподобных синтаксических конструкций. Просто как будто тема ради темы)))
    С логикой отказа от сахара или его сокращением можно опять перейти на ассемблер 😐

    • @user-uz4ry4zf3d
      @user-uz4ry4zf3d 7 месяцев назад

      Чет мне кажется там про сахар так плохо не говорили.

    • @user-ef7om8pq6t
      @user-ef7om8pq6t 7 месяцев назад

      @@user-uz4ry4zf3d ну как бы да, но я считал посыл из серии, что надо уходить от самоподобных конструкций и тд.
      Я немного обобщил пример 🙂

    • @user-uz4ry4zf3d
      @user-uz4ry4zf3d 7 месяцев назад

      @@user-ef7om8pq6tЭдак мы массивы на словари заменим ))

    • @user-vladislav7
      @user-vladislav7 7 месяцев назад

      Раз уж вы питонист, можно вам задать вопрос, какого xepa у вас в языке list это не список, а динамический массив? Я просто ранее изучал С и С++ с ассемблером и когда недавно увидел list[2] на питоне удивился, что там оператор индексирования для списка используется. Начал гуглить и обнаружил, что в питоне это не список...

    • @user-ef7om8pq6t
      @user-ef7om8pq6t 7 месяцев назад

      @@user-vladislav7 я бы не был так уверен, что это чистый динамический массив. Я интересовался этим вопросом минут 20 полгода назад и у меня сложилось впечатление (возможно я хотел, чтобы оно у меня такое сложилось 🙂), что там развернутый список на базе массивов, то есть элементом списка является массив грубо говоря, и эти массивы связаны в список, в котором и адресация индексная работает и в целом меньше приколов с аллокацией памяти, потому что для расширения достаточно просто слтнковать ещё один массив в конец, но супер не уверен, в этом, я не смог найти нормальную литературу по этому поводу. Буду рад, если поделитесь материалом, на базе какой структуры реализован list в python

  • @aywanbr
    @aywanbr 7 месяцев назад +5

    В golang только for, в котором прячется for и while. В erlang только рекурсия, тема которой требует отдельного видоса. Так что нужно больше контента

    • @Rezedent12
      @Rezedent12 7 месяцев назад +1

      А ещё range для перебора коллекций.

  • @komillermaster6821
    @komillermaster6821 7 месяцев назад +4

    В питоне, for в привычном понимание не существует, он перебирает итерируемые объекты)

    • @SklerozRu
      @SklerozRu 7 месяцев назад

      for each по сути

  • @uselessevgeny3726
    @uselessevgeny3726 7 месяцев назад +8

    Братан, хорош, давай, давай вперед! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?

  • @TheSnos15
    @TheSnos15 3 месяца назад +1

    любой программист, а не блогер или выпукник курсов, прекрасно знает, что из цикла можно выйти в отличие от мап/редюс/фильтр/вок

  • @AlexShataev
    @AlexShataev 7 месяцев назад +4

    Минуточку! ✋Вы спецификацию циклов читали вообще или нет?

  • @xumpocmb-404
    @xumpocmb-404 2 месяца назад +1

    Братан, хорош, давай, давай вперед! Контент в кайф, можно ещё? Вообще красавчик!

  • @user-xk2lb2ob8p
    @user-xk2lb2ob8p 7 месяцев назад +23

    Сишный for был создан для компьютера с 8 килобайтами памяти. Это PDP-7 и UNIX. Памяти у Юникса было как обрывок чека в туалете, поэтому у for в языке C такой странный синтаксис.

    • @alexf3289
      @alexf3289 7 месяцев назад +25

      Что в нём странного? О_о

    • @user-gs5ku1et3n
      @user-gs5ku1et3n 7 месяцев назад +13

      Человек фигню написал, в C for самый нормальный, там явно указана инициализация переменной, изменение и проверка перехода.

    • @SilentPrayerCG
      @SilentPrayerCG 7 месяцев назад

      Вот почему в спектумовском бейские тоже фор есть.. там-же тоже памяти ровно на стикер на котором размер трусов печатают.

    • @ulysses.apokin
      @ulysses.apokin 7 месяцев назад

      @@user-gs5ku1et3n в чистом Си в for нельзя инициализировать переменную. Напоминаю, что присвоение и инициализация - это две абсолютно разные операции.

    • @user-xk2lb2ob8p
      @user-xk2lb2ob8p 7 месяцев назад

      @@SilentPrayerCG В Спектруме памяти на порядок больше чем у UNIX. Одно ПЗУ Синклера в два раза больше чем вся оперативная память Юникса. Достаточно чтобы использовать человеческий оператор FOR, а не эту кастрированную замухрышку. Ну и как итог, сколько Синклеров продали? А на скольких компах Юникс поставили за то же время? 30 (тридцать штук).

  • @WounderVaflel
    @WounderVaflel 7 месяцев назад +13

    Ничего себе, это что, образовательный контент?!!

  • @user-ee5st4hh8t
    @user-ee5st4hh8t 6 месяцев назад +2

    За фортан было обидно. Я ведь даже не женат

  • @alevyts3523
    @alevyts3523 Месяц назад

    Для описания итеративного процесса не нужны специальные циклические конструкции вроде do, repeat, until, for и while. Если реализация языка поддерживает хвостовую рекурсию, то итерацию можно выразить с помощью обыкновенного механизма вызова функций, так что специальные циклические конструкции имеют смысл только как синтаксический сахар.

  • @Torn_Shoe
    @Torn_Shoe 7 месяцев назад +2

    for нужно потому-что не всегда он должен начинаться с 0, может нам нужно выбрать что-то начиная с 1 элемента, а не с 0, поэтому не всегда его можно превратить просто в while (i < 5) как в примере

    • @two_choices
      @two_choices 7 месяцев назад

      Ничего тебе не мешает сделать for(int i =1 ...) и цикл начнется с единицы

    • @Torn_Shoe
      @Torn_Shoe 7 месяцев назад

      @@two_choices так я ж поэтому и говорю что нельзя все заменить на while как делает компилятор потому-что каждый цикл служит своей цели.

    • @Dmittry
      @Dmittry 7 месяцев назад

      @@Torn_Shoe Так тебе без разницы с чего он там начинается. Цикл for просто объединяет инициализацию, условие и изменение. Ты можешь сделать так: int i = 1; while (i < 5) { делаем_какую_то_хрень; или_не_делаем; i = i +100500; }. И это будет тоже самое, что for (int i = 1; i < 5; i = i + 100500) {} Да, там не обязательно i++ должно быть.
      У меня другой вопрос, как заменить do-while без костылей с дополнительной переменной isFirstRun?

    • @OlegTar
      @OlegTar 7 месяцев назад

      ``У меня другой вопрос, как заменить do-while без костылей с дополнительной переменной isFirstRun?``
      а в чём проблемам собственно?

    • @Dmittry
      @Dmittry 7 месяцев назад

      @@OlegTar А в чём проблема с do-while собственно? В ролике рассказывается, что три вида циклов нафиг не нужны и можно всё заменить одним. Вот у меня и вопрос, как заменить do-while без нагромождения костылей.

  • @-Sergey
    @-Sergey 7 месяцев назад +3

    Ребята, которые "Братан, хорош, давай, давай, вперёд! Контент в кайф". Ну включите же голову, напишите что-нибудь от себя. Ну тоска же под каждым видео одинаковые комментарии читать.

    • @letburnit5017
      @letburnit5017 7 месяцев назад +6

      Ребята, которые "Братан, хорош, давай, давай, вперёд! Контент в кайф". Ну включите же голову, напишите что-нибудь от себя. Ну тоска же под каждым видео одинаковые комментарии читать.

    • @Dyxacm
      @Dyxacm 7 месяцев назад +2

      Ребята, которые "Братан, хорош, давай, давай, вперёд! Контент в кайф". Ну включите же голову, напишите что-нибудь от себя. Ну тоска же под каждым видео одинаковые комментарии читать.

    • @user-cc9tb3dg8v
      @user-cc9tb3dg8v 6 месяцев назад

      Ребята, которые "Братан, хорош, давай, давай, вперёд! Контент в кайф". Ну включите же голову, напишите что-нибудь от себя. Ну тоска же под каждым видео одинаковые комментарии читать.

  • @vasilevsky_a
    @vasilevsky_a 7 месяцев назад +2

    5:57 Автор обкакунькался, вот тебе фор свифтовский, просто синтансис другой
    for i in 0..

    • @vasilevsky_a
      @vasilevsky_a 7 месяцев назад +1

      (Да, я знаю что по сути идет проход по Range: Sequence интов, и это ближе к проходу по массиву чем к счетчику по семантике, но факт в том что конструкция есть и очень часто используется) просто разработчики языка не стали разделять фор на два типа, как forin и forof в джсе

    • @sleepyNovember_project
      @sleepyNovember_project 7 месяцев назад

      Раньше в си плюсах можно было похоже писать, не знаю как с таким сейчас:
      for each (obj i in coll){}
      Сейчас актуален и работет такой синтаксис, например для перебора всей коллекции
      for (auto i : coll){}
      Так, к слову

    • @OlegTar
      @OlegTar 7 месяцев назад

      только в сишном форе, я всё что угодно могу запихать в фор, хоть вызов функции:
      for (func1();func2(); func3())

  • @dolsha
    @dolsha 7 месяцев назад +3

    Братан, хорош! Давай вперёд! Контент в кайф! Можно ещё? Ваще красавчик!

  • @raztarg4adchadov914
    @raztarg4adchadov914 7 месяцев назад +2

    Бро. Красавчик, ещё побольше такого контента. Благодарю за информацию!!!

  • @Golyb_q
    @Golyb_q 7 месяцев назад +1

    Что-то я не догнал с чего это "do-while" не нужон. Если замену while на for я еще могу как-то оправдать, мол это
    ```
    for( ; /*условние*/ ; ) {
    // тело
    }
    ```
    и это
    ```
    while(/*условние*/) {
    // тело
    }
    ```
    по сути одно и то же, то do-while будет просто не удобно реализовывать через for. Например такой код
    ```
    do{
    // попросить юзера ввести "5"
    }while(/*проверить ввел ли он 5*/)
    ```
    Это можно сделать и через for конечно, но тогда так или иначе мы сделаем проверку условия перед тем как сделать первую итерацию цикла. Так же не очень понял как и зачем заменять for на while, ибо в таком случаи
    ```
    int i = 0;
    while(i < 10) {
    // тело
    i++;
    }
    ```
    переменная i будет доступна и вне цикла, при этом ее инициализацию в цикл не запихать - условие не пройдет

    • @user-bi4eo3ys1f
      @user-bi4eo3ys1f 6 месяцев назад

      А если всю эту конструкцию засунуть в ещё одни фигурные скобки?

    • @Golyb_q
      @Golyb_q 6 месяцев назад

      @@user-bi4eo3ys1f это сработает, область видимости ограничится) однако по мойму легче все же будет юзать for когда нужен for, а do-while когда нужен do-while)

  • @vesh95
    @vesh95 3 месяца назад

    Фор хорош тем, что если у тебя условия в цикле, то в суматохе кодинга ты не напишешь код, пропускающий инкрементирование аргумента. А вообще да, тот же while получается, да даже do while можно через while выразить

  • @AndreyKauf
    @AndreyKauf 2 месяца назад

    Очень часто
    For-ом ты можешь за один проход сделать все преобразования, что тебе нужны, а map-reduce ом ты будешь два раза гонять.
    Это может быть быть не критично, если коллекция маленькая, но на больших уже будет заметно.
    Тут у нас получается трейдофф между элегантностью кода и его скоростью

  • @Mercury13kiev
    @Mercury13kiev 7 месяцев назад +2

    Циклы while, do/while и do/until (идеал - все три) - это три кита, связанных… с человеческим языком. Надо прикинуть устройство алгоритма на родном языке, а потом переписать на компьютерный. Когда do/until превращается в do/while по законам де Моргана, код может терять читаемость.
    Цикл for - это т.н. цикл со счётчиком. Да, это while, но он подразумевает пару новинок. 1) Завести при желании переменную-счётчик, которая будет жить в теле цикла и не уйдёт за его пределы. 2) Функция «+1» находится за пределами тела, чтобы можно было пользоваться оператором continue. Этот оператор в Си крайне мощен, но и ошибкоопасен.
    Цикл foreach - это тот же цикл for, покрывающий важный случай. 1) Коллекция сама знает, как её проходить. 2) Коллекцию нужно пройти целиком (возможно, выскочив из цикла где-то по дороге). 3) Сам счётчик не нужен, нужен только элемент. Когда случаи 2 и 3 не выполняются, кое-где сделали настоящую инверсию абстракции - foreach по диапазону.
    Использовать goto приходится, надо признаться. Правила хорошего тона - недалеко и вперёд, обычно для выхода из нескольких циклов.

    • @1234567qwerification
      @1234567qwerification 6 месяцев назад

      А язык Perl написал лингвист, поэтому он ещё ближе к человеческому.
      И для выхода из вложенного цикла к break добавляется имя метки, которой помечен тот цикл, из которого выходить :)

    • @Mercury13kiev
      @Mercury13kiev 6 месяцев назад +1

      @@1234567qwerification Выход из цикла по метке - это классное дело! Жаль, такого нет в Си с крестами.

    • @1234567qwerification
      @1234567qwerification 6 месяцев назад

      @@Mercury13kiev может, добавят ещё :)
      (Туда уже такого надобавляли...)

  • @PersonalSmile69
    @PersonalSmile69 7 месяцев назад +1

    я так понимаю курс по пограммированию от ЭкстримПанков уже начался, верно?

  • @alexnechitailo9003
    @alexnechitailo9003 7 месяцев назад +1

    Что за бред! Смысл for не в синтаксичесом сахаре, а в том, что он гарантирует изменение счетчика на каждой итерации. Это очень удобно, если в цикле есть несколько мест, где в ветке условия стоит continue. Я думаю, любой, кто ловил фриз программы, потому, что в цикле while() забывал поставить i++ перед continue, который выполнился где то в if()-е - оценит пользу и удобство for()

  • @scad_
    @scad_ 5 месяцев назад +1

    По поводу goto описано в "Чистая архитектура" Роберта Мартина. Не новость.
    Но я не могу сказать, что цикл while и for взаимозаменяемы. Автор же сам говорит, что в while не известно количество итерации, а в for известно. В этом и разница концептуального подхода. На том же python можно сделать просто while True и цикл будет крутится бесконечно

  • @sweetcapitan5690
    @sweetcapitan5690 7 месяцев назад +2

    А что насчет того, что в шарпах for и forEach имеют разную производительность? Про фп, в которых циклов нету by design, можно было бы хотя бы упомянуть. Про ииераторы тоже неэи слова не сказанно.

  • @Debuffometh
    @Debuffometh 7 месяцев назад +7

    Искала видео про месячные, а тут какой-то мужик втирает мне какую-то дичь про циклы 😮

    • @reteavstudio
      @reteavstudio 6 месяцев назад

      Зато как втирает

    • @user-bi4eo3ys1f
      @user-bi4eo3ys1f 6 месяцев назад

      А я пытался выяснить в интернете, сколько у кошки сисек. Оказалось, непросто сформировать правильный запрос.

  • @dimankan
    @dimankan 7 месяцев назад +3

    Фига себе. Я начал изучать си шарп 3 года назад по плейлистам для маленьких и тупых, думал что много уже чего увидел и прочитал, "repeat:" и "goto repeat", я ещё не видел. думаю надо как-нибудь использовать и взорвать кому-нибудь жёпку:)

    • @evgeniygorkaviy4690
      @evgeniygorkaviy4690 7 месяцев назад +2

      Главное себе не взорвать такой миной.

    • @user-cc9tb3dg8v
      @user-cc9tb3dg8v 6 месяцев назад

      Ну, если там, где ты работаешь, нормально поставлены процессы, то твой код обосрут на код ревью и просто просто отклонят пока не перепишешь. И скорее всего будут правы: самое удобное что можно на них сделать - быстрый выход из многоуровнегого цикла. Либо свою упоротую версию try-catch.
      Все остальное прекрасно заемняется условиями, циклами либо вынесением в отдельную функцию. А компилятор еще и оптимизаций докинет сверху.

  • @vovka_goodwin
    @vovka_goodwin 7 месяцев назад +8

    В го вообще один цикл на все случаи жизни :D

  • @KolyaUdav
    @KolyaUdav 6 месяцев назад +2

    КАК ЛИД СКАЗАЛ, ТАК ДЕЛАТЬ И БУДЕМ, МЫ НА ИСПЫТАТЕЛЬНОМ СРОКЕ. НЕ ЕБИ ГОЛОВЫ

  • @user-xs4ws1zp1e
    @user-xs4ws1zp1e 7 месяцев назад +5

    Так, блэть, Я не понял. А куда потерялся НаЩ ЛюБиМеВщЫй "foreach" под обложкой "for"?!?!?!

    • @ispite
      @ispite 7 месяцев назад +1

      он же пометил forin (foreach)

    • @user-rs7gv4fy7e
      @user-rs7gv4fy7e 7 месяцев назад

      У пхпшников инфаркт жопы) Наш любимый забыли)

    • @SilentPrayerCG
      @SilentPrayerCG 7 месяцев назад

      Он превратился в какой-то for in.

    • @KZVlad1
      @KZVlad1 7 месяцев назад

      @@user-rs7gv4fy7e почему именно пхп? он не только там

    • @mr.e.a.8967
      @mr.e.a.8967 7 месяцев назад

      А еще for of забыли, атата😢

  • @glenstorm87
    @glenstorm87 7 месяцев назад +3

    Расскажите пожалуйста про циклы в Хаскеле 👉👈😊

    • @surdeus
      @surdeus 7 месяцев назад

      Готово

  • @AwowerX
    @AwowerX 2 месяца назад

    В DarkBasicPro есть основной цикл Do-Loop. И если внутри (а это необходимо) использовать циклы while, do/while до игра будет лагать жёстко. Поэтому без for в DarkBasic нельзя заменить while и do/while. Специально написал комментарий чтобы постучать со дна, Basic самый лучший язык в мире.

  • @TheLevius
    @TheLevius 7 месяцев назад +1

    а как какать?

  • @DeadnWoon
    @DeadnWoon 3 месяца назад

    Существует ещё, к примеру, loop (количество повторов).

  • @user-io8ug3yb2p
    @user-io8ug3yb2p 7 месяцев назад +4

    В прологе вообще нет никаких циклов, там работает машина поиска с возвратом, довольно мощная штука

    • @chakchaky8521
      @chakchaky8521 6 месяцев назад

      Безсмысленная дичь.

    • @user-bi4eo3ys1f
      @user-bi4eo3ys1f 6 месяцев назад

      И очень медленная. Помнится, в начале 90-ых была игра "преферанс", написанная на прологе. Так иногда приходилось по 20 минут ждать очередного хода.

  • @ani_sci
    @ani_sci 3 месяца назад

    После изучения Ассемблера в колледже, для меня все ЯП высокого уровня довольно странные. Хотя Erlang тоже было интересно поизучать.

  • @kalmanjudin1336
    @kalmanjudin1336 7 месяцев назад +2

    Чел вставил рекламу и прочитал определения циклов😢. Класс!😮 А можно потом про базовые принципы ооп?😊 Спасибо!❤❤❤

    • @mn4840
      @mn4840 6 месяцев назад +1

      ...и приправил всё это отборными мемчиками )

  • @LLlblKAPHO
    @LLlblKAPHO 7 месяцев назад +2

    ниче не понял, какой смысл в видео?

    • @alexperemey6046
      @alexperemey6046 6 месяцев назад

      Такой же как всегда - показать рекламу

  • @ktoto4940
    @ktoto4940 3 месяца назад

    for позволяет использовать счетчик процессора вместо переменной, что повышает производельность.

  • @qwertyqwerty2854
    @qwertyqwerty2854 7 месяцев назад +2

    Дейкстра, а не Дийкстра

  • @stalker32041
    @stalker32041 Месяц назад

    3:29, а я использую цикл for для чтения файлов... Только цикл for, без блока кода.
    ...
    long length = ftell(fptr);
    fseek(fptr, 0, SEEK_SET);
    char* buffer = calloc(length + 1, sizeof(char));
    for (char* ptr = buffer; !feof(fptr); *ptr++ = fgetc(fptr));
    buffer[length] = 0x00;

    • @SalatikInMyHead
      @SalatikInMyHead 6 дней назад

      🤦🤦 fread(buffer, 1, length, file) 👍

  • @user-ud8ds2mr8j
    @user-ud8ds2mr8j 7 месяцев назад

    Братан, хорош, давай, давай вперед! Контент в кайф, можно ещё? Вообще красавчег!

  • @user-if1dj7fy2y
    @user-if1dj7fy2y 2 месяца назад

    Чудесно звучит 🎉 а когда будет рассказ про критическое мышление ?

  • @user-gs5ku1et3n
    @user-gs5ku1et3n 7 месяцев назад +1

    Вообще есть три способа выполнить переход: 1. jmp 2. call/ret 3. Прерывания

    • @nouai
      @nouai 7 месяцев назад

      так и до r-value l-value дойти можно...

  • @MIT-js9we
    @MIT-js9we 3 месяца назад

    «Как фортран программист без внуков»
    Я тоже слышал о девушках в легендах, говорят, они и вправду существуют.

  • @WewasAtamans
    @WewasAtamans 4 месяца назад

    forEach и вправду же тормознутее на хроме, или наконец пофиксили??

  • @Zaborovnik
    @Zaborovnik 7 месяцев назад

    Истина в любимом нами машинном языке, процессор имеет только функции перехода, которые могут быть либо безусловные, либо зависящие от статуса флажков последней операции, взаимодействующей с флагами. С их помощью реализуются как циклы, так и ветвления. Если мы говорим о первых, циклы можно реализовать как раз таки тремя способами, причем третий является разновидностью двух последних.
    1) DO - пишется метка, потом исполняется «тело цикла», в котором существует команда, изменяющая состояние флажков, потом идёт команда перехода, зависящая от состояния последних (например, флаг нуля - результат функции вернул слово из нулей), выполнение условия заставит программу выполняться с метки, пока условие не будет нарушено, что позволит машине перейти на следующую строчку кода
    2) WHILE - создается начальная метка, далее - команда условного перехода, ведущая на метку за телом цикла. Если условие не выполняется, машина будет выполнять следующий за командой перехода код, пока не дойдёт до метки безусловного перехода к начальной метке.
    3) FOR - предварительно до первых двух блоков выделяется переменная, которой присваивается значение требуемого количества циклов, далее в теле цикла в конце мы пишем команду вычитания с изменением флажков, именно результат этой команды будет определять, как себя переведёт команда условного перехода.
    -
    Приблизительно так, если есть неточности, прошу в комментарии.

    • @user-bi4eo3ys1f
      @user-bi4eo3ys1f 6 месяцев назад

      Вообще-то в машинном языке ещё есть вызовы подпрограмм и возвраты из них. А также вычисляемые косвенные переходы и косвенные вызовы подпрограмм. То есть возможен оператор case, не содержащий проверки условий, а одной командой переходящий на вариант исполнения ветки.

  • @alexanderten9540
    @alexanderten9540 2 месяца назад

    Цикл while был придуман во время второй мировой войны для объяснения переводчиками условий Сталина "пока не открыт второй фронт поставлять в СССР грузовики, самолеты, боеприпасы и вооружение" и этот цикл должен быть вечным напоминанием о том что все тексты программ учавствуют в войне. Может map и reduce тоже к какой-нибудь войне приурочить? Увы, на такие решения нужны исключительные обстоятельства, воля и время, сами по себе такие решения не возникают

  • @Dmittry
    @Dmittry 7 месяцев назад +1

    А можно подробнее, как do-while заменить for или while'ом? Без костылей с новой переменной isFirstRun.

    • @DeadnWoon
      @DeadnWoon 3 месяца назад

      Видимо, просто дублированием кода. Сначала просто текст, потом он же в теле цикла.

  • @user-fq5ec4xl4s
    @user-fq5ec4xl4s 6 месяцев назад +1

    Коты забрали всё внимание, пришлось пересматривать)

  • @icesnowy1393
    @icesnowy1393 Месяц назад

    Что делать если нужно выйти из всех циклов находясь во вложенном цикле? Использование меток.

  • @lolkek.supergut
    @lolkek.supergut 7 месяцев назад +1

    А как правильно - одновременно или одновременно?

  • @NikW
    @NikW 7 месяцев назад +3

    Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?

  • @AmpiroMax
    @AmpiroMax Месяц назад

    Брат, братан, мега хорош, видос кайф, впервые на тебя наткнулся, иду пересматривать все видосы и под каждым лайк ставить

  • @GerbekSergey
    @GerbekSergey 7 месяцев назад +9

    Тема скоупов не раскрыта

    • @EvgeniyFadeev
      @EvgeniyFadeev 7 месяцев назад

      но это и не тема циклов, в целом

    • @Spitzel42
      @Spitzel42 7 месяцев назад +1

      @@EvgeniyFadeev ну да, когда for заменяют на while с переменной итерации перед телом цикла (как на 6:36)... А потом ищут баг два дня после таких видосиков)

    • @EvgeniyFadeev
      @EvgeniyFadeev 7 месяцев назад

      @@Spitzel42 это, всего лишь, частный случай. Скоуп - гораздо более общее понятие и касается далеко не только циклов, а вообще любых единиц кода.

    • @GerbekSergey
      @GerbekSergey 7 месяцев назад

      Вопросы видимости переменных, определенных в теле цикла, сломали мозг не одному начинающему прогеру@@EvgeniyFadeev

  • @sleepyNovember_project
    @sleepyNovember_project 7 месяцев назад +1

    6:34 оно у тебя в документе исходника никуда не разворачивается, так что, да, докапываешься. Если так хочешь использовать один цикл для всего, используй

  • @DeadnWoon
    @DeadnWoon 3 месяца назад

    Циклы - это всего-навсего оператор сравнения и переход на метку. Те, кто ленятся написать сравнение и переход на метку понапридумывали себе уйму лишних конструкций.

  • @qskyisover8153
    @qskyisover8153 2 месяца назад

    - Зачем наплодили аж 3 вида циклов?
    Тем временем Go:

  • @ЧувакИзКосмоса
    @ЧувакИзКосмоса 7 месяцев назад

    Про второй итог: изпользуя map, filter и т.п., опираемся на самописные функции через def F(...) или функции сторонних библиотек.

  • @incredibleBY
    @incredibleBY 7 месяцев назад +2

    6:39
    Это не циклы while, do_while, for "говно и не нужны" и идея "сахарить дибильна".
    А этот youtube-ролик - говно и не нужен, а идея его смотреть, лайкать и рекомендовать дибильна. И причем говноконтент, байтещий людей на холивар и гневные коменты, кочует из одного ролика автора в другой.( и работет-же су-о)😊😂
    А по-сути: сахар -это полезно, сахар повышает лаконичность и скорость понимания, уменьшает дублированость. Если кто, как автор, не согласен то пускай пишет высокорувневые приложения целиком на ассембле со своис оператором goto во главе...и идет прямиком на свалку вакансий, его ни кто не наймет, если он хоть заикнется об этом...goto garbage короче

  • @Youtube-pomoyka
    @Youtube-pomoyka 7 месяцев назад

    В PHP также синтаксический сахар позволяет сократить 2-3 строки до одной. For так же, там удобней работать и отслеживать итерации

  • @user-mp7il3je9d
    @user-mp7il3je9d Месяц назад

    Цикл do while не может заменить два других (про то что они "взаимозаменяемы")

  • @igicava
    @igicava 7 месяцев назад +2

    В go это лучше всего сделано. Там только for есть который все задачи выполняет.

    • @user-cl8dg5fj1c
      @user-cl8dg5fj1c 7 месяцев назад

      Так у циклов всего одна задача и есть

    • @igicava
      @igicava 7 месяцев назад +1

      @@user-cl8dg5fj1c Да, у циклов только 1 задача - повторять какой-то участок кода. Но оформлять это можно по разному и по-моему в go оформлять циклы удобнее всего.

  • @ЧеловексТопором
    @ЧеловексТопором 4 месяца назад +1

    Golang использует во всех случаях только for

  • @sergeyshevelev4842
    @sergeyshevelev4842 6 месяцев назад

    Мое мнение while использовать рискованно. Объибешься с условием получишь лупу (ровно такая же опа с until). For, forin более конкретные и отказоустойчивые. Кстати почему-то обошли строной foreach.

  • @qwertymangames1800
    @qwertymangames1800 6 месяцев назад +1

    Ещё одно подтверждение почему тебя хейтят многие ютуб программисты.
    Ты просто байтишь на комменты, ничего полезного в ролике не было. Даже наоборот какой-нибудь недоджун подумает что ты прав и будет писать говнокод. И всё ради комментариев и активности на канале. Да подавись ты моим комментарием.
    Самый простой пример на 6:20 В цикле for ты выносишь i++ в конец цикла, хотя весь смысл for - это сделать чистый и понятный код указывая всё нужное в заголовке.
    А использование for вместе бесконечного цикла лютейшее дерьмо. В python вообще такое невозможно так как там for всегда аналог foreach.
    Просто подумайте кого мы смотрим. Блогер снимает ролики, не чтобы научить чему-то джунов. А чтобы ради активности на канале срать в уши людям. Учить плохому, после чего на работе на челиков посмотревший этот ролик будет вылета тонна дерьма.
    Ты заслужил отписку. Удачи

  • @Korrmet
    @Korrmet 2 месяца назад

    Смотри, есть такая хрень как компилятор или интерпретатор, и пишутся они совершенно особым образом, так как тебе надо решить вопрос курицы и яйца. Далее на примере компилятора. Ты выбираешь изначально из спецификации языка сааамые базовые конструкции, при помощи которых в принципе можно написать программу. Как правило это вызов процедуры (не функции! можешь хоть отдельный видос сделать про разницу), тернарный оператор, объявление переменной, GOTO. Вот прт помощи примерно такого спартанского набора ты можешь написать все что угодно, хоть и мерзко все это будет. Далее начинается, так называемая, раскрутка компилятора. Ты пишешь на каком-то другом языке компилятор, который способен переварить только базу, получаешь бинарь с уже рабочим, но говняным компилятором. Дальше ты переписываешь свой компилятор при помощи своего базового языка и компилишь ранее написанным, таким образом у тебя получается новый компилятор, написанный на языке, который собственно необходимо компелять. Далее ты берешь опять спецификацию, выбираешь следующую фичу или ключевое слово и реализуешь в своем компиляторе, получаешь новый бинарь, потом переписываешь код компилятора, так как ты уже поддерживаешь новую фичу и опять все собираешь. Таким образом шаг за шагом ты получаешь клмпилятор языка написанный на самом языке. А процесс напоминает то, что описано в школьном учебнике биологии про развитие эмбриона и как он повторяет развитие организмов.
    Так что GOTO - это самый натуральный скам. Дейкстра прав. Но без него нельзя обойтись, не растут языки без него.
    Кстати, Дейкстру пздц как не поняли и его статью. Формально ее вписали во многие стандарты, но сделали это как мартышка с очками на жопе. В ISO до сих пор не поняли что такое точка входа и точка выхода...

  • @ankagris4689
    @ankagris4689 7 месяцев назад +1

    Как всегда гениально!!!

  • @KZVlad1
    @KZVlad1 7 месяцев назад

    А куда делся втроой голос? Уже давно его нет, но всё никак не спрашивает никто

  • @user-zx1ct5eg2w
    @user-zx1ct5eg2w 7 месяцев назад

    Ты ещё забыл про отдельное чудо языка Rust: цикл loop. Это короче замена while true, чтобы избежать проверки истинность этого самого true, сделали цикл вообще без проверки, тупо бесконечный. И кстати разворачивается он в ассемблере именно в безусловные переходы.