﻿# V6086\. Suspicious code formatting\. 'else' keyword is probably missing\.

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

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

```cpp
public void fillTrialMessage(User user, Response response)
{
  if (user.getTrialTime() > 7) {
    // Do not set message
  } if (user.getTrialTime() > 0) {                // <=
    response.setTrialMessage("Trial ends soon");
  } else {
    response.setTrialMessage("Trial has ended");
  }
}
```

Здесь разработчик подразумевал, что сообщение в ответе заполнится только в случае, когда триальный период у пользователя подходит к концу или уже закончился\. Однако, из\-за пропущенного слова 'else', пользователь будет оповещён даже если до конца этого периода ещё несколько месяцев\. После исправления фрагмент кода будет выглядеть следующим образом:

```cpp
public void fillTrialMessage(User user, Response response)
{
  if (user.getTrialTime() > 7) {
    // Do not set message
  } else if (user.getTrialTime() > 0) {
    response.setTrialMessage("Trial ends soon");
  } else {
    response.setTrialMessage("Trial has ended");
  }
}
```

Если же использование конструкции else\-if не подразумевалось, следует исправить форматирование и перенести второй 'if' на следующую строку:

```cpp
public void doSomething()
{
  if (condition1) {
    foo();
  }
  
  if (condition2) {
    bar();
  } else {
    baz();
  }
}
```

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