Порядок выполнения имеет значение в операторах if
и else if
.
Выполнение цепочки операторов начинается с if
, затем могут идти блоки else if
или блок else
. Следует быть внимательным при описании первого оператора в цепочке.
Рассмотрим две функции в качестве примера.
Первая:
function foo(x) {
if (x < 1) {
return "Less than one";
} else if (x < 2) {
return "Less than two";
} else {
return "Greater than or equal to two";
}
}
Во второй, поменяем местами порядок выполнения операторов:
function bar(x) {
if (x < 2) {
return "Less than two";
} else if (x < 1) {
return "Less than one";
} else {
return "Greater than or equal to two";
}
}
Несмотря на то, что две функции выглядят почти идентично, передавая в них одинаковое числовое значение, результат будет отличаться.
foo(0) // вернет "Less than one"
bar(0) // вернет "Less than two"
Измените логическую последовательность выполнения операторов if
и else if
так, чтобы функция возвращала правильные значения для всех тестов.