Если разные условия 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 шт):
Для чего по-твоему нужен 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)
Выполняется только первый else if, условие в котором верно.
Выполнится только 1 из череды if или elif
В 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
}