Я новичок в C ++. Я часто вижу условное выражение, подобное приведенному ниже:
if
statement_0;
else if
statement_1;
Вопрос:
Синтаксически я должен рассматривать else if
как одно ключевое слово? Или это действительно вложенный if
оператор внутри внешнего, else
как показано ниже?
if
statement_0;
else
if
statement_1;
c++
syntax
language-lawyer
модельер
источник
источник
else if
elseif
иELIF
. Фактически только (?) Язык программирования Algol68 допускает пробел в идентификаторе; тоже приятно:PROC walk through tree ()
elseif
Ключевое слово существует в VB и PHP.long double
вы должны это написать таким образом.longdouble
это неверно.Ответы:
Они не одно ключевое слово , если мы идем в проект C ++ стандартный раздел
2.12
Ключевые слова таблицы4
списков какif
и поelse
отдельности , и нетelse if
ключевых слов. Мы можем найти более доступный список ключевых слов C ++ , перейдя в раздел cppreferences по ключевым словам .Грамматика в разделе
6.4
также проясняет это:if
Вelse if
это заявление послеelse
термина. В разделе также говорится:и предоставляет следующий пример:
Так как же анализируется ваш слегка расширенный пример?
будет анализироваться так:
Заметка
Мы также можем определить, что
else if
это не может быть одно ключевое слово, понимая, что ключевые слова являются идентификаторами, и мы можем видеть из грамматики идентификатора в моем ответе на вопрос « Можете ли вы начать имя класса с числовой цифры?» что пробелы не допускаются в идентификаторах и поэтомуelse if
не могут быть одним ключевым словом, а должны быть двумя отдельными ключевыми словами .источник
jeq
(if
|else if
),jne
(if
|else if
),jmp
(else
). Исходя из этого, я бы сказал, что это было одно ключевое слово ... вероятно, не синтаксически, а по инструкции.else if
, но вместо этогоelsif
. В этих языкахelse if
это действительно одно ключевое слово. Однако, как говорится в этом ответе, языки на основе C обычно этого не делают.else
заявление. Я тоже был бы признателен за это.Синтаксически это не одно ключевое слово; ключевые слова не могут содержать пробелов. По логике вещей, при написании списков
else if
, вероятно, лучше, если вы увидите его как одно ключевое слово и напишите:Компилятор буквально видит это как:
но обе формы приводят к одному и тому же, и первая гораздо более читабельна.
источник
else
следующего заcompound-statement
. Послеelse
, Он ищетstatement
(что может быть похоже наreturn;
илиf()
) илиcompound-statement
...Нет это не так.
Это два ключевых слова, и, более того, второе «if» является подзапросом «внутри» области, определенной первым оператором «else».
источник
Вы можете увидеть объем, используя фигурные скобки:
И обычно реализуется с двумя разными ключевыми словами, одно - if , другое - else .
источник
if-statement
заканчивается необязательнымelse-clause
.else-clause
Является либоelse code-block
илиelse if-statement
.code-block
включает обязательные скобки. Таким образом, заelse
ключевым словом может следовать только{
илиif
.else { if ... }
".Как уже было сказано, это не так. Это два ключевых слова. Это начало двух следующих друг за другом утверждений. Чтобы попытаться сделать это немного понятнее, вот BNF gramar , которые имеют дело с
if
иelse
заявления на языке C ++.Обратите внимание, что
statement
сам файл includeselection-statement
. Итак, комбинации вроде:возможны и действительны в соответствии со стандартом / семантикой C ++.
Примечание: грамматика C ++ взята с этой страницы.
источник
else и if - два разных ключевых слова C ++ . За оператором if может следовать необязательный оператор else if ... else . Если оператор может иметь ноль или больше другого , если «s и они должны прийти до другого .
Вы можете найти синтаксис и пример в этом руководстве по выражению if ... else
источник
Я просто хотел бы добавить ко всем этим объяснениям свою точку зрения. На мой взгляд, если вы можете использовать эти ключевые слова по отдельности, они должны быть ДВУМЯ ключевыми словами. Может быть, вы можете взглянуть на грамматику C ++ по этой ссылке в stackoverflow: Существует ли стандартная грамматика C ++?
С уважением
источник
За оператором if может следовать необязательный оператор else if ... else, который очень полезен для проверки различных условий с помощью одного оператора if ... else if.
При использовании операторов if, else if, else следует иметь в виду несколько моментов.
посмотрите инструкцию if ... else .
источник
else if
как если бы это было ключевое слово, поэтому было бы бессмысленно определять его явно.