C#else如果混乱

pet*_*ter 2 c#

我目前正在研究条件结构.如果我错了,请纠正我,否则如果和其他(if(){})是同一件事......示例:

a=5;
if(a==6)
{ 
   Console.WriteLine("Variable 'a' is 6");
}
else if(a==5)
{
     Console.WriteLine("Variable 'a' is 5");
}
Run Code Online (Sandbox Code Playgroud)

a=5;
if(a==6)
{ 
    Console.WriteLine("Variable 'a' is 6");
}
else
{
    if(a==5)
    {
        Console.WriteLine("Variable 'a' is 5");
    }
}
Run Code Online (Sandbox Code Playgroud)

这些东西是一样的吗?如果是的话,为什么如果我能把它写成"第二种方式"(我写的第二个例子)呢?

Tim*_*Tim 5

是的,这些实际上完全相同.

"else if"语句存在的原因是在有许多条件要测试时制作更干净的代码.例如:

if (a==b) {
   //blah
} else if (a==c) {
   //blah
} else if (a==d) {
   //blah
} else if (a==e) {
   //blah
}
Run Code Online (Sandbox Code Playgroud)

比嵌套方法更清晰

if (a==b) { 
    //blah
} else {    
    if (a==c) {
        //blah
    } else {
        if (a==d) {
            //blah
        } else {
            if (a==e) {
                //blah
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 你不能总是使用switch case--就像在我的例子中一样,c,d和e是变量,而不是常量,所以你不能在case语句中使用它们. (3认同)