Я не уверен, что это хороший вопрос, но это беспокоило меня с теоретической точки зрения. Может кто-нибудь объяснить, почему некоторые языки, такие как php, имеют явное elseif / elif, в то время как другие, такие как c ++ или java, обходятся только if и else. Казалось бы, меньше ключевых слов для запоминания предпочтительнее, чем больше ключевых слов. Есть ли какая-то польза от использования оператора elseif?
Постскриптум Я пишу книгу о языках программирования и собираю мнения по теории языкового дизайна
РЕДАКТИРОВАТЬ: Спасибо за указание на это. Теперь я понимаю, что в Python это особенно важно благодаря правилу пробелов и отступов. Я изменил мой пример с Python на PHP.
По моему мнению, elseif
избегает чрезмерных отступов, как прокомментировал @kalhartt, для python (обязательно) и для других языков, таких как c ++ (необязательно, но обычно).
Но что более важно, я думаю elseif
полезная функция, которая намекает на рабочий процесс в том смысле, что
1) больше ничего нет в else
ветвь, то есть у нас нет сложных структур, таких как
if (A) {
}
else {
if (B) {...} else { ... }
i++;...
}
2) это помогает создать линейный структура похожа на switch
Скажите, где
switch (a) {
case 1:
...
case 2:
...
case 3
...
default:
}
сопоставляется с:
if (a == 1) {
}
elseif (a == 2) {
}
elseif (a == 3) {
}
else{
}
if ... elseif ...
форма немного более многословна, но более мощна, то есть с менее строгим условным условием для каждого «случая». Например, вы можете использовать
elseif (a > 3 && a < 7)
На мой взгляд, выгода заключается в упрощении кода. Скажем, есть список вариантов, и вы используете операторы if для выполнения действий для каждого отдельного варианта. Проще использовать операторы elseif, чтобы сузить выбор. Кроме того, он имеет большую читаемость.