我目前正在研究条件结构。如果我错了,请纠正我,否则如果和其他(if(){})是同一件事......示例:
a=5;
if(a==6)
{
Console.WriteLine("Variable 'a' is 6");
}
else if(a==5)
{
Console.WriteLine("Variable 'a' is 5");
}
和
a=5;
if(a==6)
{
Console.WriteLine("Variable 'a' is 6");
}
else
{
if(a==5)
{
Console.WriteLine("Variable 'a' is 5");
}
}
这些东西是一样的吗?如果是的话,如果我能写出“第二种方式”(我写的第二个例子),为什么还存在呢?
答案 0 :(得分:5)
是的,这些实际上完全相同。
"否则如果"存在的语句是在有许多条件要测试时制作更干净的代码。例如:
if (a==b) {
//blah
} else if (a==c) {
//blah
} else if (a==d) {
//blah
} else if (a==e) {
//blah
}
比嵌套方法更清晰
if (a==b) {
//blah
} else {
if (a==c) {
//blah
} else {
if (a==d) {
//blah
} else {
if (a==e) {
//blah
}
}
}
}
答案 1 :(得分:3)
为什么
else if
存在
它没有。它本身不是关键字或构造。你的两个例子是相同的,只是在第二种情况下,你在代码中添加了一些多余的括号和空格。
if
和else
都只是后跟一个语句。在您的第一个示例中,else
后面的语句是:
if(a==5)
{
Console.WriteLine("Variable 'a' is 5");
}
第二个示例只是在大括号中包含相同的语句,并在开头添加一个新行。新行被忽略,因此它不会改变语义,并且因为代码已经单个语句,将它包装在大括号中并不会以任何方式对其进行更改。 / p>
答案 2 :(得分:2)
严格来说,没有else
语句这样的东西。一个"否则如果"实际上实际上只是一个if
,它有一个单独的主体,恰好是一个完全独立的var a = 5;
// This if uses a single line
if (a == 6) DoSomething();
// This else is a single line that is also a single-line if
else if (a == 4) DoAnotherThing();
// This else uses a single line as well, but is referring instead to the second if
else DoSomethingElse();
语句的开头。你可以像这样想象它:
if (a == 6)
{
DoSomething();
}
else
{
if (a == 4)
{
DoAnotherThing();
}
else
{
DoSomethingElse();
}
}
以上脚本与以下内容相同:
if (a == 6)
DoSomething();
else
if (a == 4)
DoAnotherThing();
else
DoSomethingElse();
甚至这个:
else if
它被编写为{{1}}的原因通常是因为它补充了代码的逻辑流程。那,它看起来更漂亮。
答案 3 :(得分:0)
大多数情况下,它使代码更清晰,更容易阅读,更好地缩进,特别是如果你对行的字符长度有任何约定(如果你没有,那么你在大的时候有三十个缩进如果声明,这样的痛苦阅读)。它还节省了空间,一些额外的字符和数千行的缩进可能不是很多,但为什么要使用它,如果你不必。当代码编译时,它们在DLL中几乎完全相同。