﻿# V8004\. The use of 'if A \{\.\.\.\} else if A \{\.\.\.\}' pattern was detected\. A potential logical error is present\.

Анализатор обнаружил потенциально возможную ошибку в конструкции, состоящей из условных инструкций\. Ошибка заключается в повторяющихся условиях if\. Это может привести к тому, что код внутри тел таких операторов будет недостижим\.

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

```cpp
const (
  MONDAY    = "Monday"
  TUESDAY   = "Tuesday"
  WEDNESDAY = "Wednesday"
  THURSDAY  = "Thursday"
  FRIDAY    = "Friday"
)

if day == MONDAY {
  ....
} else if day == TUESDAY {
  ....
} else if day == WEDNESDAY {
  ....
} else if day == THURSDAY {
  ....
} else if day == MONDAY {
  ....
}
```

В данном примере имеются две конструкции `if` с одинаковым условием\. Если поток управления достигнет второго условия, то оно всегда будет вычисляться как `false`, и весь код в соответствующей ветке будет недостижим\.

Корректный код может выглядеть следующим образом:

```cpp
if day == MONDAY {
  ....
} else if day == TUESDAY {
  ....
} else if day == WEDNESDAY {
  ....
} else if day == THURSDAY {

} else if day == FRIDAY {
  ....
}
```