﻿# V3018\. Consider inspecting the application's logic\. It's possible that 'else' keyword is missing\.

Анализатор обнаружил фрагмент кода, в котором оператор 'if' расположен на той же строке, что и закрывающая скобка предыдущего оператора 'if'\. Возможно, что в этом месте пропущено ключевое слово 'else', из\-за чего программа работает не так, как ожидал программист\.

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

```cpp
if (cond1) {
  Method1(val);
} if (cond2) {
  Method2(val);
} else {
  Method3(val);
}
```

В том случае, если истинно условие 'cond1', будет вызван не только метод 'Method1', но и 'Method2' или 'Method3'\. Если подразумевалась именно такая логика, следует исправить форматирование и перенести второй оператор 'if' на следующую строку:

```cpp
if (cond1) {
  Method1(val);
} 

if (cond2) {
  Method2(val);
} else {
  Method3(val);
}
```

Такой код будет для большинства программистов более привычен и не вызовет подозрения на наличие ошибки\. Также анализатор перестанет выдавать лишнее предупреждение\.

Если же в такого поведения не подразумевалось и в логике работы программы допущена ошибка, необходимо добавить ключевое слово 'else'\. Тогда корректный код будет выглядеть так:

```cpp
if (cond1) {
  Method1(val);
} else if (cond2) {
  Method2(val);
} else {
  Method3(val);
}
```