﻿# V705\. It is possible that 'else' block was forgotten or commented out, thus altering the program's operation logics\.

Данная диагностика похожа на диагностику V628, однако относится к ветви else оператора if\. Анализатор обнаружил подозрительное место в коде – возможно, забытый или некорректно закомментированный блок else\.

Данную ситуацию лучше всего разобрать на примерах\.

```cpp
if (!x)
  t = x;
else

z = t;
```

В данном примере форматирование кода не совпадает с его логикой: выражение z \= t выполнится лишь в случае, если \(x \=\= 0\) – вряд ли это имелось в виду\. Подобная же ситуация может возникнуть при неудачно закомментированном фрагменте кода:

```cpp
if (!x)
  t = x;
else
  //t = -1;
z = t;
```

В данном случае требуется либо исправить форматирование, превратив его в более удобочитаемое, либо исправить логическую ошибку, добавив недостающую ветвь оператора if\.

Правда, иногда существуют случаи, в которых тяжело определить, является ли подобный код некорректным или таким образом стилизованным\. Анализатор пытается уменьшать количество ложных срабатываний, связанных со стилизацией, путём некоторого эвристического анализа\. К примеру, следующий код не приведёт к срабатыванию диагностического правила:

```cpp
if (x == 1)
  t = 42;
else
 
if (x == 2)
  t = 84;
else

#ifdef __extended__x
if (x == 3)
  t = 741;
else
#endif

  t = 0;
```