如果您使用 and/or ( || / && ),.net 是否会停止检查 IF 语句的其余部分?

发布于 2024-11-17 05:10:19 字数 334 浏览 3 评论 0原文

假设你有这样的东西:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

风吹过旳痕迹 2024-11-24 05:10:19

这称为布尔短路评估并且(尽管[引用需要])是的,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
.

转身泪倾城 2024-11-24 05:10:19

是的,这个功能称为短路评估。如果 AND 运算符 (&&) 的第一个参数为 false,则整个表达式将为 false。与 OR (||) 类似,如果第一个操作数为 true,则整个结果为 true。

如果您想要编写类似于以下的代码,则此功能非常有用:

    if(a != null && a.isValid())
        ... Code ...

这样,如果 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:

    if(a != null && a.isValid())
        ... Code ...

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

北座城市 2024-11-24 05:10:19

如果你做对了,是的。看一下这里: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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文