Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

V7030. Suspicious code formatting. The 'else' keyword is probably missing.

16 Июн 2026

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

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

function setPermissions(role) {
  let permissions = Permissions.NONE; 
  if (role == ADMIN) {
    permissions = Permissions.ANY; 
  } if (role == USER) {                // <=
    permissions = Permissions.ONLY_READ; 
  } else {
    permissions = Permissions.NONE; 
  }
}

В этом фрагменте устанавливаются права в системе в зависимости от роли пользователя. Если роль соответствует ADMIN, то переменной rights присваивается Permissions.ANY. Однако после этого проверки продолжаются. Условие role == USER будет ложным, и переменной permissions будет присвоено значение NONE.

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

function setPermissions(role) {
  let permissions = Permissions.NONE; 
  if (role == ADMIN) {
    permissions = Permissions.ANY; 
  } else if (role == USER) {
    permissions = Permissions.ONLY_READ; 
  } else {
    permissions = Permissions.NONE; 
  }
}

В ситуациях, когда цепь из else-if не подразумевается, следует изменить форматирование для упрощения понимания кода:

if (x > 10) {
  Do1(); 
}

if (x > 7) {
  Do2(); 
} else {
  Do3(); 
}