Как выйти из бесконечного цикла?
Тут будет пост, лишенный особой культурной ценности, но — личноблог же.
А проблема у меня вот какая: я пью слишком много кофе. Конкретно сегодня пил его в 6.00, 8.00, 10.00, 12.30, 15.00 и 16.00, то есть, около двух литров выпил. От такого количества кофе сплю по три-четыре часа в день, встаю в пять утра невыспавшийся и, чтобы не заснуть на ходу, снова начинаю кофейный цикл. Кто-нибудь знает, из этого цикла вообще есть выход?
А проблема у меня вот какая: я пью слишком много кофе. Конкретно сегодня пил его в 6.00, 8.00, 10.00, 12.30, 15.00 и 16.00, то есть, около двух литров выпил. От такого количества кофе сплю по три-четыре часа в день, встаю в пять утра невыспавшийся и, чтобы не заснуть на ходу, снова начинаю кофейный цикл. Кто-нибудь знает, из этого цикла вообще есть выход?
192 комментария
А Гибоникус может говорить, что угодно, без собственного Табуна мы ему всё равно не поверим.
А ты иди спать.Ну, там же написано «Не открывай». :)
Ну, то есть, умеренное и обоснованное использование говнокодом не считается.
А зачем там goto?
К тому же из циклов можно выходить с помощью break, как, собссна, некий юзер выше и написал.
Однако, goto там в самом деле уместнее будет, я чет не подумал о том, что брейков там нужна целая толпа.
И во внешнем тоже
2) Вынести двойной цикл в процедуру и рвать return или exit (смотря какой язык)
3) Пересмотреть архитектуру и избавиться от вложенного цикла
Я чаще, конечно, втыкаю goto и не парюсь. Уместный goto, поставленный уверенной рукой — куда лучше формальных флагов или сложных постусловий.
Но тут надо учитывать, что они очень и очень тяжёлые, и годятся только для однократного вызова.
А вообще, если код функции вмещается на один экран, то нет ничего страшного в том, чтобы заюзать goto.
Код функции на экран — это вообще общее правило, сильно помогающее жить.
Иногда ещё бывает, хочется прыгнуть в середину цикла)
@
НЕ КОМПИЛИРУЕТСЯ
Там автоматом вроде ставились номер строк с шагом в десять. И это было почти удобно, хотя в процессе написания проги оказывалось необходимым добавлять строки в самое начало (емнип, допустим, до строки с номером 10) — и тогда как раз этот интервал «в девять свободных строк» очень пригождался. Но вскоре он заканчивался (внезапно, да?) и тогда в конце свободного промежутка писался волшебный GOTO и всё необходимое писалось в конце проги, с последующим обратным GOTO :3
По-моему достаточно все джампы в адреса превратить…
Где ты это дерево хранить будешь?
Это сейчас память дешёвая.
*пошёл читать про дерево*
Да. Всё-таки, а с деревом это как выглядит? :3 :3
Спойлер
Там использовалось АСТ.
И программам тупо не хватало памяти, чтобы собраться.
И придумали такую штуку — include, чтобы собирать программы пофайлово.
В дальнейшем это, правда, породило кучу проблем. Но это уже другая история.
Инклюд включает заголовочный файл, который включает описание другого Си-файла.
Можно рассматривать его, как ссылку. Мы не берём тяжёлый файл, мы берём инклюд — ссылку на него.
А сами файлы компилируются отдельно, что как раз позволяет экономить память.
И пофиг, что на дворе 2015, это легаси, на этом ядро Линукса написано.
А вот инклюды, как я понимаю, основная причина почему С++ столь медленный. Он даже для ХэллоуВорлда генерирует один файл на 10000 строк.
Я говорю про это. И это — способ компилировать файлы main.c и lib.c раздельно.
Смотри: в lib.c лежит куча кода и инклюд хедер. lib.c мы компилируем отдельно, он превращается в lib.o.
В main.c мы добавляем хедер, чтобы ссылаться на файлы из либы. Заметь, саму либу мы не трогаем, мы берём лишь объявления, лежащие в хедере. Компилируем main.c в main.o.
Как ты видишь, использование #include header.h позволяет компилировать каждый файл по очереди, а не все сразу, что критично для компов с малой памятью.
Потом в дело вступает линковщик, и он уже собирает все эти файлы в один исполняемый. Линковщику память не нужна, он тупо проставляет goto на нужные места в памяти.
Так и что? Это нужно скорее чтобы не пересобирать весь код с нуля, а только тот, что был изменен.
Да, но изначально к этому добавлялся и весьма ограниченный объём памяти компьютера.
Собственно две причины инклюдов.
Короче, три ночи сейчас. Сложно отследить нить разговора. :)
У всяких спектрумов вроде 128 ведь было?
Но ранние версии (GW) или встроенные во всякие БК-0010 — без номеров никак
Помню одно прога на бейсике запускалась на компе просто так, сразу, «нажатием одной кнопки», без какойто предварительной обработки как на турбоси или фортране
Можно контролировать миллиграммы кофеина и пробовать снижать дозу день ото дня.
И тогда я разорвал её"
Разберемся с физиологией процесса.
У тебя сейчас запущен т.н. «маятник» торможения — возбуждения ЦНС. Он есть у всех, но у тебя он раскачан неслабо. Что делать:
Вариант 1: уйти в ломку. В отпуске, минимум 2 недели, не пить кофе и чай, не курить. Терпеть. В первую неделю хочется спать — спать. Не хочется — не спать, не зависимо от времени. Со второй неделе нормализовать сон. Как — гуглопоиск в помощь. При этом нормально питаться здоровой пищей, пить больше соков, витаминов. По окончании отпуска пить нечасто некрепкий чай, кофе год не пить, потом можно нечасто не крепкий и лучше растворимый. Это лучший вариант.
Вариант 2. Медленно снижать дозу в течение 2-х месяцев. Перейти на растворимый кофе, затем на чай. Можно попробовать вместо кофе принимать таблетку кофеина (купить в аптеке). Использовать замещение, носить с собой леденцы или карамель — захотелось кофе — съел леденец, выпил чаю. Дома избавиться от безделья, чтобы не пить кофе «просто так».
Придётся употреблять кокаин.
Но 12 часов это все равно нехорошо, надо с этим что-то делать.
Но делать всё-равно что-то надо.
Ездил на собеседование к конкурентам. Устраивало все, кроме месторасположения офиса. Та еще опа мира… Взвесил все — решил пока поискать что-то получше.
В мечтах вообще переехать из этого болота в какой-нибудь нормальный город (очень хочется в Питер), но, увы, пока это лишь малоосуществимые мечты. Да и кому я там нужен, ничего не умеющий?..
Поверь, после того, как такое несколько дней подряд проделаешь, все станет лучше, и снова сможешь и в рабочее время думать, и после него на что-то личное силы останутся.
Режим дня в дальнейшем — очень хорошо помогает, но если с регулярностью никак, то добирай хотя бы прерывистым сном, час тут, час там.
С первого же дня «снижения» количества кофе начинай пить витамины, — лично я люблю «Супрадин», и мне даже в пик моего увлечения неспаньем они казались неплохи. Витаминки поддержат силы и бодрость, серьезно — не до кофеинового состояния, но различие будет менее заметно. Не пей только больше одного курса подряд, тоже частая ошибка
Ешь. Каждый день, не меньше двух раз, и обязательно теплую/горячую еду — ставь будильник, если надо, потому что если много работаешь, поесть на уровне разума часто забываешь, а естественное чувство голода от кофе и стресса в половине случаев притупляется. Иногда просто исчезает. Но организму еда нужна все равно, это энергия, без которой бодрячком быть невозможно. Не забывай о ней.
Как-то так. И ты молодец, что хочешь начать выбираться, хотя вот это выше все — это при условии, что ты хочешь сохранить уровень загруженности прежний, хотя вообще-то, по-хорошему, жить в стрессе годами очень некруто, и если снизишь уровень стресса, то и от кофе избавиться будет в разы проще
а горечь принимается за фон, тогда вкусно. А я вообще с сахаром его, так энергетичнее
Вроде бы даже растворимые гранулы делаются «исключительно из кофейных зёрен», и там не пишут, сколько кофеина в них. Подбирать брутфорсом разве что…
Когда установится нормальный режим отдыха-работы — следовать советам выше, насчет «ломать» или «снижать».
Попробуй на воду перейти — в большинстве случаев, что я знаю, люди пьют кофе вместо воды потому что хотят пить.
Хочется «подзарядиться» — пригуби глоток-другой (больше вряд-ли выйдет, напиток же горячий), и продолжай заниматься своим делом. И погляди, что из этого получится.
P.S. — Есть еще безопасный вариант «проснуться» — купить в ближайшей аптеке Элеутерококк. Несколько капель — и в глаза словно спички вставили. Дешево, безвредно, эффективно. Непродолжительно разве что, единственный минус.