Вони не одне ключове слово , якщо ми йдемо в проект C ++ стандартний розділ 2.12
Ключові слова таблиці 4
списків як if
і по else
окремо , і немає else if
ключових слів. Ми можемо знайти більш доступний список ключових слів C ++ , перейшовши до розділу cppreferences щодо ключових слів .
Граматика в розділі 6.4
також це ясно:
selection-statement:
if ( condition ) statement
if ( condition ) statement else statement
if
У else if
це заяву після else
терміна. У розділі також сказано:
[...] Підзаголовок у виписці-операторі (кожен підзаголовок, в
іншому вигляді оператора if ) неявно визначає область блоку (3.3). Якщо підзаголовок у виділенні-операторі - це одне твердження, а не складене твердження , воно є так, як якщо б воно було переписане як складене твердження, що містить початковий підзаголовок.
і надає наступний приклад:
if (x)
int i;
can be equivalently rewritten as
if (x) {
int i;
}
То як розбирається твій трохи розширений приклад?
if
statement_0;
else
if
statement_1;
else
if
statement_2 ;
будемо аналізувати так:
if
{
statement_0;
}
else
{
if
{
statement_1;
}
else
{
if
{
statement_2 ;
}
}
}
Примітка
Ми також можемо визначити, що else if
не може бути одним ключовим словом, зрозумівши, що ключові слова є ідентифікаторами, і ми можемо бачити граматику для ідентифікатора у моїй відповіді на " Чи можна почати ім'я класу з числової цифри?" що пробіли не допускаються в ідентифікаторах, і тому вони else if
не можуть бути одним ключовим словом, але повинні бути двома окремими ключовими словами .
else if