Я встретил следующий код на С#.
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
во втором примере?