Первая часть:
if (condition_1)
do this
// previous if has nothing to do with this if & else
if (condition_2)
do that
else
do blablabla
В этом случае, если condition_2
истинно, то будет выполнено do that
, в противном случае do blablabla
будет выполнено ..
Теперь вторая часть :
if (condition_1)
do this
else if (condition_2)
do that
else
do blablabla
Здесь будет выполняться истинное условие first true, а остальные значения else if
& else
будут игнорироваться, все условия будут проверяться последовательно до else
или true
условие найдено. Если условия не выполняются, то else
будет выполнен. Таким образом, do blablabla
будет выполнен, если эти оба из двух условий false
И, наконец, да, второе if
может быть заменено на:
if (!(condition_1) and condition_2)
do that
Это потому, что второе if будет проверено (do that
будет выполнено), только если condition_1
равно false .. и condition_2
равно true.
Что эквивалентно: (тогда и только тогда, когда condition_1
равно false
)
if (!(false) and condition_2)
do that
Вы можете заменить еще if
s, проверив, было ли предыдущее условие ложным, таким образом, каждые else if
s с предыдущими условиями, это утомительно.
Пример:
if (a) {
// do task1
} else if (b) {
// do task2
} else if (c) {
// do task3
} else {
// do task4
}
Эквивалентно:
if (a) {
// do task1
}
if (!a and b) {
// do task2
}
if (!a and !b and c) {
// do task3
}
if (!a and !b and !c) {
// here is the else
// do task4
}
Когда использовать else, если вместо if?
Вообще говоря, мы объединяем if
, иначе if и else
в конце, чтобы обеспечить выполнение только одного условия, если один равен true
, остальные игнорируются и выполнения переходят к следующему из очень последняя строка (}
) из последних else
.