C#中有两个if和另一个。怎么了?

Lou*_*hys 2 c# if-statement

例如:

if(cond1)
if(cond2) DoCond2();
else DoCond3();
Run Code Online (Sandbox Code Playgroud)

else语句是否将被视为第一个if或第二个的其他语句if?为什么?(是否从语法角度进行解释?)答案在其他基于C的编程语言(例如C和Java)中是否也相同?

注意:这不是作业。我可以很容易地对其进行测试,如果我不喜欢默认行为,可以使用大括号,但是我对此感到好奇。

编辑们,显然在原始示例中有一个非常严重的错误。请再检查一次。我知道,这很尴尬。抱歉。

V4V*_*tta 5

根据MSDN

在嵌套的if语句中,else子句属于最后一个if,而后者没有对应的else。

同样可以评估C和C ++条件,其中结果0为假,其他任何数字为真。在C#中,条件必须评估为布尔值true / false

EDIT 按照Edit,它是一个嵌套的if,因此内部值为true时将求值,而else则为内部if