if else 和 return 的区别
Different between if else and return
我的第一个片段:
public bool isSmall(int x)
{
if (x == 0)
{
return true;
}
else
{
if (x < Smallest)
{
return true;
}
else
{
return false;
}
}
}
我的第二个片段:
public bool isSmall(int x)
{
if (x == 0)
{
return true;
}
if (x < Smallest)
{
return true;
}
return false;
}
我想要的是if (x == 0)
只return为真,如果没有再比较if (x < Smallest)
,如果为真return为真,否则return 错误的。
我知道我的第一段代码和第二段代码做同样的事情,但我想知道哪种写法更好、更亲切、更安全?他们有什么真正的区别吗?还是只是两种写法?
编译器可能会将您的其中一个例程优化为以下内容:
public bool IsSmall(int x)
{
return (x == 0 || x < Smallest);
}
要了解原因,请为每组方法写出并填写布尔真值 table。
他们做同样的事情。如果代码直接按照编写的那样进行编译,则第二个可能会稍微高效一些(因为省略了 else,因此少了一个分支语句)。但是,所有现代编译器都会对此进行优化,使它们完全相同。
为了回答你的问题(哪个更好),哪个更容易阅读和理解就更好,因为他们做同样的事情。
两者都可读,但视角不同。
第一个更安全,因为更具可读性(可读性是指您可以更轻松地阅读它并在脑海中进行说明)
我一般用第二个,看起来更干净(看起来更易读但更难理解)
关于可读性;对于少量的 if-else,第一个更好,但对于许多 if-else(如 10),第二个更好。
我的第一个片段:
public bool isSmall(int x)
{
if (x == 0)
{
return true;
}
else
{
if (x < Smallest)
{
return true;
}
else
{
return false;
}
}
}
我的第二个片段:
public bool isSmall(int x)
{
if (x == 0)
{
return true;
}
if (x < Smallest)
{
return true;
}
return false;
}
我想要的是if (x == 0)
只return为真,如果没有再比较if (x < Smallest)
,如果为真return为真,否则return 错误的。
我知道我的第一段代码和第二段代码做同样的事情,但我想知道哪种写法更好、更亲切、更安全?他们有什么真正的区别吗?还是只是两种写法?
编译器可能会将您的其中一个例程优化为以下内容:
public bool IsSmall(int x)
{
return (x == 0 || x < Smallest);
}
要了解原因,请为每组方法写出并填写布尔真值 table。
他们做同样的事情。如果代码直接按照编写的那样进行编译,则第二个可能会稍微高效一些(因为省略了 else,因此少了一个分支语句)。但是,所有现代编译器都会对此进行优化,使它们完全相同。
为了回答你的问题(哪个更好),哪个更容易阅读和理解就更好,因为他们做同样的事情。
两者都可读,但视角不同。
第一个更安全,因为更具可读性(可读性是指您可以更轻松地阅读它并在脑海中进行说明)
我一般用第二个,看起来更干净(看起来更易读但更难理解)
关于可读性;对于少量的 if-else,第一个更好,但对于许多 if-else(如 10),第二个更好。