【发布时间】:2013-08-18 19:01:35
【问题描述】:
我只是在玩一个生成逻辑真值表的控制台应用程序,然后点击以下 c# 语句
bool a, b, c; //get inputs
if(a = b = c)
{
Console.WriteLine("sucess"); // print if 1
}
语句if(a = b = c) 仅在bool c 为真时返回真(编辑:我的期望是所有输入都需要相同才能成功)。有人能解释一下这个语句是如何执行的吗?
编辑:我看到 IV4 的答案是
if( a== b == c ) 出于好奇,我编译了它并且它有效。
编辑2:亨克是对的。 a=false,b=true,c=false 返回 true。
【问题讨论】:
-
=是 assignment 运算符,而不是逻辑运算符。 -
c 分配给 b,然后分配给 a。
-
这甚至不会编译,因为你没有初始化
c变量。 -
@SonerGönül 你不读
//get inputs它被称为魔法代码你只需要思考和初始化:P -
重新删除的答案:是的,
if(a == b == c)被评估为if( (a == b) == c )并且适用于布尔值。但它会返回true,例如当 a=false,b=true,c=false 时。
标签: c# boolean-logic