Я встретил следующий код на С#.
if(condition0) statement0;
else if(condition1) statement1;
else if(condition2) statement2;
else if(condition3) statement3;
...
else if(conditionN) statementN;
else lastStatement;
Некоторые из моих коллег говорят мне, что это инструкция else if. Однако я убежден, что на самом деле это многоуровневый вложенный оператор if-else. Я знаю, что без разделителей {} один оператор разрешен в if или else. Поэтому в этом случае я думаю, что это будет эквивалентно следующему коду.
if(condition0)
statement0;
else
if(condition1)
statement1;
else
if(condition2)
statement2;
else
if(condition3)
statement3;
else
...
Обратите внимание, что все, что я изменил, было пробелом.
Этот отступ работает, потому что каждый else возвращается к самому последнему оператору if, когда нет разделителей.
Может ли кто-нибудь уточнить, соответствует ли формат else if в первом примере компилятором по-разному, чем вложенный формат if-else во втором примере?