Если разные условия else if будут true, выполнится только первый else if или все, попадающие под условия?

Вот, например, такой код:

int a = 5;
int b = 7;
if (a > 10) {
// не выполнится
}
else if (a > 0 && a < 10 && b > 5 && b < 10) {
// должен выполниться
}
else if (a > 0 && a < 20 && b >= 7 && b <= 20) {
// a и b попадают под условие, но выполнится ли этот блок?
}
else if (a > 10 && a <= 100) {
// не должен выполниться
}
else if (a == 5 && b == 7) {
// выполнится ли этот блок?
}

В моём проекте вычисления посложнее будут, этот простой пример лишь для наглядного объяснения вопроса

И ещё такой вопрос. Если, допустим, каким-то образом в одном из верхних блоков else if (или просто if) изменится значение переменной, которая в следующем else if должна была вернуть false, на значение, которое при проверке возвращает true, выполнится ли этот блок? Пример:

int a = 5;
if (a < 10) {
a = 15;
}
else if (a == 15) {
a = 25; //изначально этот блок не должен был выполниться, но в if была изменена переменная a. Выполнится ли блок?
}
else if (a == 25) {
// выполнится ли этот блок?
}

Ответы (3 шт):

Автор решения: Qwertiy

Для чего по-твоему нужен else? Если условие истинно, то else не выполняется и наоборот. Если хочешь проверять все условия, выкинь else и оставь только if. В таком случае каждое условие будет проверяться с актуальным значением переменной, в отличие от параметра switch.

var x = 10

if (x) console.log(1)
else console.log(2)

if (x) console.log(3)
else if (x) console.log(4)

if (x) console.log(5)
if (x) console.log(6)

if (x) { x = 0; console.log(7) }
if (x) console.log(8)

if (x) console.log(9)
else console.log(10)

→ Ссылка
Автор решения: Краева Екатерина
  1. Выполняется только первый else if, условие в котором верно.

  2. Выполнится только 1 из череды if или elif

→ Ссылка
Автор решения: Alexey Ten

В JS нет оператора else if. У вас внутри блока else написан if и т.д.

Если ваш код можно переписать вот так с отступами, то возможно станет немного понятнее что будет выполнятся, а что нет:

var a = 5;
var b = 7;

if (a > 10) {
    // ...
} else { // условие в if не выполнено — заходим в else
    if (a > 0 && a < 10 && b > 5 && b < 10) {
        // выполнится
    } else { // сюда выполнение уже не зайдёт, соответственно
             // всё что внутри этого else не будет выполнятся
        if (a > 0 && a < 20 && b >= 7 && b <= 20) {
            // ...
        } else {
            if (a > 10 && a <= 100) {
                // ...
            } else {
                if (a == 5 && b == 7) {
                    // ...
                }
            }
        }
    } // тут заканчивается else
}
→ Ссылка