Официальный сайт компании Arduino по адресу arduino.cc
Почему не получается выйти из цикла switch?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Чт, 28/02/2019 - 20:22
if (irrecv.decode(&results)) { switch (results.value) { case 3772817503: morg: if (results.value == 3772817503) { p = 255; analogWrite(5, p); delay(100); p = 0; analogWrite(5, p); delay(100); p = 255; analogWrite(5, p); delay(100); p = 0; analogWrite(5, p); delay(100); goto morg; } else { break; } }
Нужно что бы при изменении значения results.value , срабатывал break;
А где он меняется то ? В какой строке ? Может я после текиллы вижу плохо....
Если свич усилен ифом, то следовает компенсировать пробивную силу удвоением оператора брэйк.
Если свич усилен ифом, то следовает компенсировать пробивную силу удвоением оператора брэйк.
Покажите пример пожалуйста :)
На сколько мне известно, не нужно использовать брейк в ифе
Похоже ТС - троль . Метка морг . и гото в него ;))
все серьезно) наверное я просто туп
Я такой мощный код с такими хитрыми приемами не осилю... :(
Расскажи мне, с когда switch циклом стал?
Строка 67 для чего?
Я хоть выпью за его упокой как оператора выбора.
Расскажи мне, с когда switch циклом стал?
Похоже после того как к нему гото добавили .
А. Ну да.
все серьезно) наверное я просто туп
goto выкиньте.
И лучше вообще никогда не используйте этот оператор (не только тут) - хотя это уже вопрос дискуссионный.
все серьезно) наверное я просто туп
goto выкиньте.
И лучше вообще никогда не используйте этот оператор (не только тут) - хотя это уже вопрос дискуссионный.
Прошу прощения, но я не был бы столь категоричен. В данном случае - да, но я бы не обобщал. Каждому апиратору - свою вакансию.
Строка 67 для чего?
Действительно, не знаю зачем поставил if если и так использую goto, но работать все равно не хочет
Прошу прощения, но я не был бы столь категоричен.
Ну я ж сразу оговорился - "вопрос дискуссионный" - именно предвидя возражения.
Хотя лично для меня никакой дискуссии в нем нет - за 30 лет знакомства с С-С++ у меня НИ В ОДНОЙ ПРОГРАММЕ нет goto - во всяком случае в моем собственном коде. Всегда можно написать без меток - и меня так учили, что НУЖНО ПИСАТЬ БЕЗ МЕТОК.
Я старый структураст :)
А где он меняется то ? В какой строке ? Может я после текиллы вижу плохо....
Повторюсь. Это не праздный вопрос.
Дак может и goto не к месту?
ну я ж сразу оговорился - "вопрос дискуссионный" - именно предвидя возражения.
Хотя лично для меня никакой дискусси в нем нет - за 30 лет знакомства с С-С++ у меня НИ В ОДНОЙ ПРОГАММЕ нет goto - во всяком случае в моем собственном коде. Всегда можно написать без меток - и меня так учили, что НУЖНО ПИСАТЬ БЕЗ МЕТОК.
Я старый структураст :)
Ты главное не начни писать на чистом си.... А то бяда....
Не подскажете тогда как мне сделать так что бы при определенном значении results.value, циклично выполнялась какая либо часть кода, а при изменении этого значения выходила из цикла?
Смешно, но goto мне понадобилса только в Ардуино, из-за ацуцтвия исключений, и никогда более :-)
Повторюсь. Это не праздный вопрос.
раньше не менялся, теперь меняется :)
в последнем варианте кода ТС переходит по метке выше чтения кода с приемника, так что меняется.
Хотя лично для меня никакой дискуссии в нем нет - за 30 лет знакомства с С-С++ у меня НИ В ОДНОЙ ПРОГРАММЕ нет goto - во всяком случае в моем собственном коде. Всегда можно написать без меток - и меня так учили, что НУЖНО ПИСАТЬ БЕЗ МЕТОК.
Есть мнение, что учил не Ритчи, который таки ввел данный оператор в структуру языка.
Не подскажете тогда как мне сделать так что бы
А -при определенном значении results.value, циклично выполнялась какая либо часть кода
Б -при изменении этого значения выходила из цикла?
вам не приходит в голову, что две эти части - А и Б - противоречат друг другу?
раньше не менялся, теперь меняется :)
в последнем варианте кода ТС переходит по метке выше чтения кода с приемника, так что меняется.
Вопрос снят, второй кусок кода не асилил....
Я думаю, что GOTO, как прием , получил черную метку в ассемблере, поскольку частенько приводил к засиранию стека, у невнимательных программеров. Ну пуши попами не покрывались :)
Не подскажете тогда как мне сделать так что бы при определенном значении results.value, циклично выполнялась какая либо часть кода, а при изменении этого значения выходила из цикла?
Сделай два свича последовательно. В первом по залову кода выставляй значение переменной, во втором - в зависимости от переменной крути фонарик.
Так?
Это не последовательно, а вложенно. "Последовательно" начинается после 48-й строки.
Спасибо, завелось!
Почему не получается выйти из цикла switch?
А войти-то получилось? :)
Почему не получается выйти из цикла switch?
А войти-то получилось? :)
Знаешь, в 90-е ходил шуточный сценарий рекламного ролика финансовой компании:
В кадре собачки, милые. Начинают заниматься собачьей любовью. Через скромную лирическую вставку - снова собачки и у них беда - склещивание. Кобель скулит и прыгает, не имея возможности "расстаться" с любимой.
Далее слоган: "Важно не только правильно вложить, но и вовремя извлечь!" - Финансовая компания "Такая-то" мы сумеем вовремя извлечь ...ваши средства!
-------------------
Это я к войти и выйти из "цикла switch". ;))))))