Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

V8009. Two or more 'case' branches perform the same actions.

03 Апр 2026

Анализатор обнаружил ситуацию, когда в конструкции switch разные метки case содержат одинаковые фрагменты кода. Это может привести к тому, что часть логики программы не будет работать.

Рассмотрим пример:

switch msg {
case "start":
  Start()
case "stop":
  Start()
}

В данном случае, для обоих case'ов выполняются одни и те же действия. Исправить код можно следующим образом:

switch msg {
case "start":
  Start()
case "stop":
  Stop()
}

Однако иногда одинаковые тела case применяются намеренно, но это может привести к неоднозначности в коде.

Рассмотрим пример:

switch msg {
case "start":
  Start()
case "begin":
  Start()
default:
  Stop()
}

В этом примере для case'а start и begin выполняется один и тот же код. Но в последствии другим разработчикам может быть не понятно ошибка это или нет.

Сделать код понятнее можно следующим образом:

switch msg {
case "start", "begin":
  Start()
default:
  Stop()
}

Взгляните на примеры ошибок, обнаруженных с помощью диагностики V8009.