Они не одно ключевое слово , если мы идем в проект 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термина. В разделе также говорится:
[...] Подставление в операторе выбора (каждое подложение в
форме 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