if语句块,每次只运行一个分支。看如下的代码:
int i = 0;
if (i < 1)
{
i = 100;
Console.WriteLine("1");
}
else if (i > 1 && i < 200)
{
i = 300;
Console.WriteLine("2");
}
else
{
i = 400;
Console.WriteLine("3");
}
进入第一个分之后,i==100;
然后i能满足else if的条件,但是整个语句块已经结束。所以if else不会被运行。
因此最好的运行结果只是打印1。