Они не одно ключевое слово , если мы идем в проект 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