Avi*_* B. 49 .net c# if-statement
我在C#中遇到了以下代码.
if(condition0) statement0;
else if(condition1) statement1;
else if(condition2) statement2;
else if(condition3) statement3;
...
else if(conditionN) statementN;
else lastStatement;
Run Code Online (Sandbox Code Playgroud)
我的一些同事告诉我,这是一个else if
声明.但是,我确信它实际上是一个多层嵌套if-else
语句.我知道没有分隔符{}
,一个if
或多个语句中允许一个语句else
.所以在这种情况下,我认为它将等同于以下代码.
if(condition0)
statement0;
else
if(condition1)
statement1;
else
if(condition2)
statement2;
else
if(condition3)
statement3;
else
...
Run Code Online (Sandbox Code Playgroud)
请注意,我改变的只是空白.这种缩进是有效的,因为当没有分隔符时,每个缩进else
都会返回到最近的if
语句.
任何人都可以澄清else if
第一个例子中的格式是否被编译器if-else
与第二个例子中的嵌套格式区别对待?
Eri*_*ert 78
你是对的; 在C#中没有"else if"语句这样的东西.这只是替代子句的声明本身就是if语句的其他部分.
当然,IDE将"else if"视为特殊,以便您获得您期望的漂亮格式.
请注意,是一个#elif
在"预处理"的语法结构.
另请注意,C,C++和ECMAScript - 我相信更多类似C语言 - 也具有没有正式"else if"语句的属性.相反,在每个行为中,"else"的定义都落在单个陈述之前.