如果您使用 and/or ( || / && ),.net 是否会停止检查 IF 语句的其余部分?
假设你有这样的东西:
int num = 0
那么你会
if(num > 5 || num < 4)
{
...
}
检查这两个语句,但是如果你这样做
if(num < 4 || num > 5)
{
...
}
它只检查第一个语句怎么办? 与:
if(num > 5 && num == 0)
{
...
}
它应该在第一次失败后停止并且......对吗?
say you have something like:
int num = 0
then you do
if(num > 5 || num < 4)
{
...
}
it checks both, but what if you do
if(num < 4 || num > 5)
{
...
}
does it only check the 1st statement?
same as:
if(num > 5 && num == 0)
{
...
}
it should stop after failing the 1st and... right?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这称为布尔短路评估并且(尽管
[引用需要]
)是的,C# 和 VB.NET 有它(感谢 @Lasse 进行更正)。在 C# 中,
||
和
&&
< /a> 是|
和&
分别。
This is called boolean short-circuit evaluation and (although
[citation-needed]
) yes, C# and VB.NET have it (thanks @Lasse for the correction).In C#,
||
and&&
are the short-circuited versions of|
and&
, respectively.
是的,这个功能称为短路评估。如果 AND 运算符 (
&&
) 的第一个参数为 false,则整个表达式将为 false。与 OR (||
) 类似,如果第一个操作数为 true,则整个结果为 true。如果您想要编写类似于以下的代码,则此功能非常有用:
这样,如果
a
为 null,您就不会收到异常。MSDN 文档 http://msdn.microsoft.com /en-us/library/2a723cdk%28v=vs.71%29.aspx
Yes, this feature is called short circuit evaluation. If the first argument to the AND operator (
&&
) is false, then the entire expression will be false. Similarly with OR (||
) if the first operand in true, the entire thing is true.This feature is useful if you want to write the code similar to:
This way you are not going to get an exception if
a
is null.MSDN documentation http://msdn.microsoft.com/en-us/library/2a723cdk%28v=vs.71%29.aspx
如果你做对了,是的。看一下这里:http://devpinoy.org/blogs/nocampo/archive/2007/09/28/short- Circuit-evaluation-in-c-and-vb-net.aspx
编辑:阐明; C# 是的,如果您使用正确的关键字,则可以是 VB.NET。
If you do it right, yes. Take a look here: http://devpinoy.org/blogs/nocampo/archive/2007/09/28/short-circuit-evaluation-in-c-and-vb-net.aspx
EDIT: To clarify; C# yes, VB.NET if you use the right keywords.