Ставите ли вы разрыв после последнего случая в переключателе?

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:?

, 👍0

Обсуждение

Это не вопрос, касающийся конкретно Arduino, и на него [уже был дан ответ на SO](https://stackoverflow.com/q/3003308)., @gre_gor

break - это команда выхода, поскольку цикл в любом случае завершается, она вам не нужна... вы должны ее использовать, потому что вы можете вырезать/вставить код или добавить еще один оператор case после последнего оператора case, а также для формирования привычки использовать ее в операторах case вообще., @jsotola

Я бы хотел утверждать, что это специфично для Arduino, потому что не все правила C++ применимы к Arduino. Например, отсутствие системы исключений не позволяет использовать Try и catch., @ATE-ENGE


1 ответ


Лучший ответ:

2

Можно, но не обязательно.

А стоит ли? Это решать вам.

Я так и делаю. Это потому, что тогда будет просто добавить еще один case в конце структуры в будущем, если вы захотите, и вам не придется помнить о необходимости добавлять break к существующему последнему case.

,