c# - 为什么逻辑 AND 运算的明显错误结果取消了 FOR 循环迭代

标签 c#

我的问题是为什么 for 循环中的这个条件会取消迭代,但在我看来条件已经满足?!如果我在不使用 AND 运算符循环的情况下尝试使用两个给定变量之一,则循环工作并无限继续。

bool a = false;
bool b = false;
for (; a && b == false; )
{
    Console.WriteLine("");
}

最佳答案

这个条件

a && b == false

表示

a && (b == false)

因为 && short circuit evaluation ,第一个 false 将导致整个表达式的 false,因此无需计算第二个表达式。

还要补充一点,即使使用单个 &(不执行短路评估,您的完整条件也会导致 false

如果你想比较 ab 是否为假,你可以这样做:

a == false && b == false

!a && !b

如果不涉及迭代变量,您还应该考虑使用 while 循环。

关于c# - 为什么逻辑 AND 运算的明显错误结果取消了 FOR 循环迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30626821/

相关文章:

c# - 尝试在子句语句中除(余数)2 时出现 razor 语法错误?

c# - WCF 初始化慢与 .NET 远程处理

c# - 检查本地数据库是否已创建 C#

c# - Unity3d AddComponent 取变量

c# - 使接口(interface)方法返回实现它的类的类型的对象

c# - SpecialFolder.MyDocuments 在控制台应用程序中提供正确的值,但在 Windows 服务中不提供

c# - 在 Windows Workflow Foundation 的 TransactionScope 中跨多个事件使用相同的数据库连接?

c# - 使用 OleDB 读取范围 Excel 工作表

c# - 在 C# 中读取内存中的 Access 数据库

C# "invalid providertype"与 Google 服务帐户