﻿# V8014\. Two 'if' statements have identical conditions\. The first 'if' statement contains function return, making the second 'if' redundant, or the code contains a logical error\.

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

Рассмотрим пример некорректного кода:

```cpp
if l >= 0x06C0 && l <= 0x06CE {
  return true
}
if l == 0x06D5 {                 // <=
  return true
}
if l >= 0x0905 && l <= 0x0939 {
  return true
}
if l == 0x06D5 {                 // <=
  return true
}
if l >= 0x0985 && l <= 0x098C {
  return true
}
```

В данном случае условие `l == 0x06D5` дублируется, и для исправления кода достаточно убрать одно из них\. Однако возможно, что во втором случае проверяемое значение должно отличаться от первого\.

Корректный вариант кода:

```cpp
if l >= 0x06C0 && l <= 0x06CE {
  return true
}
if l == 0x06D5 {
  return true
}
if l >= 0x0905 && l <= 0x0939 {
  return true
}
if l >= 0x0985 && l <= 0x098C {
  return true
}
```