﻿# V581\. Conditional expressions of 'if' statements located next to each other are identical\.

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

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

```cpp
if (strlen(S_1) == SIZE)
  Foo(A);
if (strlen(S_1) == SIZE)
  Foo(B);
```

Содержит этот код ошибку или нет, зависит от того, что хотел сделать программист\. Если во втором условии нужно вычислить длину другой строки, то это ошибка\. Исправленный код:

```cpp
if (strlen(S_1) == SIZE)
  Foo(A);
if (strlen(S_2) == SIZE)
  Foo(B);
```

Код может быть корректен\. Но тогда он неэффективен, так как два раза приходится вычислять длину одной и той же строки\. Оптимизированный код:

```cpp
if (strlen(S_1) == SIZE) {
  Foo(A);
  Foo(B);
}
```