我在 C# 中遇到过以下代码。
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
or else
。所以在这种情况下我认为它相当于下面的代码。
if(condition0)
statement0;
else
if(condition1)
statement1;
else
if(condition2)
statement2;
else
if(condition3)
statement3;
else
...
请注意,我更改的只是空白。
这种缩进之所以有效,是因为每个else
返回到最近的if
没有分隔符时的语句。
任何人都可以澄清如果else if
编译器对第一个示例中的格式的处理方式与嵌套格式不同if-else
第二个例子中的格式?
你是对的; C# 中不存在“else if”语句。它只是一个 else,其中替代子句的语句本身就是一个 if 语句。
当然,IDE将“else if”视为特殊的,以便您获得所需的良好格式。
请注意,有is an #elif
以“预处理器”语法构造。
另请注意,C、C++ 和 ECMAScript(我确信还有更多类似 C 的语言)也具有不存在正式的“else if”语句的属性。相反,在每个行为中,行为都超出了“else”的定义,即出现在单个语句之前。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)