Я знаю, что это не будет одинаковым для всех языков, но я удивляюсь этому некоторое время.
Поскольку название не очень понятно, есть ли техническая разница между * 1003?*
if (...) {
// ...
} else if (...) {
// ...
}
и
if (...) {
...
} else {
if (...) {
...
}
}
Я знаю, с практической точки зрения, они будут делать то же самое, и есть причины читабельности для выбора одного над другим, например, если второе if
не имеет прямого отношения к первому.
Но с технической точки зрения я не уверен.Компиляторы, как правило, делают что-то особенное с else if
, или он обрабатывается так, как если бы он был однострочным, как:
if (...)
singleLine();
, но выглядит как:
else
if (...) // Counts as just a single line command
Надеюсь, это прояснит то, что я спрашиваю.Есть ли техническая разница между этими двумя способами и есть ли какой-либо недостаток в использовании стиля else { if
?