Ставите ли вы разрыв после последнего случая в переключателе?
coding-standards
В Справочнике по корпусу переключателя Arduino есть структура переключателя, записанная двумя разными способами:
Впервые в синтаксисе:
switch (var) {
case label1:
// заявления
break;
case label2:
// заявления
break;
default:
// заявления
}
а затем в примере кода как:
switch (var) {
case 1:
//сделать что-то, когда var равен 1
break;
case 2:
//сделать что-то, когда var равно 2
break;
default:
// если больше ничего не подходит, делаем по умолчанию
// по умолчанию необязательно
break;
}
Есть ли причина (или нет) добавлять break;
в случае default:
? Изменяется ли необходимость в 'break;', если конечный случай не default:
?
@ATE-ENGE, 👍0
Обсуждение1 ответ
Лучший ответ:
▲ 2
Можно, но не обязательно.
А стоит ли? Это решать вам.
Я так и делаю. Это потому, что тогда будет просто добавить еще один case
в конце структуры в будущем, если вы захотите, и вам не придется помнить о необходимости добавлять break
к существующему последнему case.
,
@Majenko
Смотрите также:
- Что лучше использовать: #define или const int для констант?
- Какой стандарт C++ поддерживает язык Arduino?
- Как отправить групповое сообщение нескольким получателям с помощью GSM900 и Arduino Mega2560?
- Существуют ли какие-либо стандартные способы сообщения об ошибке времени выполнения?
- Стандарты имен переменных, например, лучший способ отправки motion_detect=true
- Код с множественными условиями
- когда я закончил кодировать свои 3 двигателя постоянного тока, все эти ошибки накопились, одна из них сказала, что в программе есть случайный «/ 302».
- Сомнение в части кодировании мигания без задержки
Это не вопрос, касающийся конкретно Arduino, и на него [уже был дан ответ на SO](https://stackoverflow.com/q/3003308)., @gre_gor
break
- это команда выхода, поскольку цикл в любом случае завершается, она вам не нужна... вы должны ее использовать, потому что вы можете вырезать/вставить код или добавить еще один операторcase
после последнего оператораcase
, а также для формирования привычки использовать ее в операторахcase
вообще., @jsotolaЯ бы хотел утверждать, что это специфично для Arduino, потому что не все правила C++ применимы к Arduino. Например, отсутствие системы исключений не позволяет использовать Try и catch., @ATE-ENGE