Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么逻辑AND运算的明显错误结果会抵消FOR循环迭代_C# - Fatal编程技术网

C# 为什么逻辑AND运算的明显错误结果会抵消FOR循环迭代

C# 为什么逻辑AND运算的明显错误结果会抵消FOR循环迭代,c#,C#,我的问题是,为什么for循环中的这个条件会使它取消迭代,但在我看来,这个条件已经满足了?!如果我尝试使用两个给定变量中的一个,而不使用AND运算符,则循环工作并无限继续 bool a = false; bool b = false; for (; a && b == false; ) { Console.WriteLine(""); } 这种情况 a && b == false 意味着 由于&&确实,第一个false将导致整个表达式的false,因此无

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

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

a && b == false
意味着

由于
&&
确实,第一个false将导致整个表达式的
false
,因此无需对第二个表达式求值

还要补充的是,即使只有一个
&
(不执行短路评估),您的完整状况也会导致
错误

如果要将
a
b
都比较为false,可以执行以下操作:

a == false && b == false

你也应该考虑使用<代码> 循环,如果没有迭代变量涉及。

< P>此条件

a && b == false
意味着

由于
&&
确实,第一个false将导致整个表达式的
false
,因此无需对第二个表达式求值

还要补充的是,即使只有一个
&
(不执行短路评估),您的完整状况也会导致
错误

如果要将
a
b
都比较为false,可以执行以下操作:

a == false && b == false

你也应该考虑使用<代码> 循环,如果没有迭代变量涉及。

BR> 因为

=
是在
&&
之前计算的,所以条件是
a&&(b==false)

太假了。


因为
=
是在
&&
之前计算的,所以条件是
a&&(b==false)


太假了。

在我看来,你认为你的代码将
a
b
与假进行比较,这不是真的。只有
b
与假进行比较,而
a
应该是真的。谢谢你,我正绞尽脑汁想它到底出了什么问题。在我看来,你认为你的代码是在比较
a
b
到false,那不是真的。只有
b
与false相比,而
a
应该是真的。谢谢,我当时正绞尽脑汁想它到底出了什么问题。我认为你的答案是最正确的。其他答案要么不回答问题,要么添加太多不相关的信息,只会模糊问题的答案继续。+1丹尼斯,我感谢你的帮助。谢谢。我认为你的答案是最恰当的。其他答案要么不回答问题,要么添加太多不相关的信息,只会模糊问题的答案。+1丹尼斯,我感谢你的帮助。谢谢。