C# ||,|,&&;在IF语句中

C# ||,|,&&;在IF语句中,c#,C#,我想做下面的IF语句 if (checkID.Equals(Convert.ToInt32(txtCheck.Text)) && drop == 319020000 || currentFloor[id][0].checkFlag == 1) 我想在这里检查以下内容: 我想核实一下这整个陈述是否属实 checkID.Equals(Convert.ToInt32(txtCheck.Text)) && drop == 319020000` 或者

我想做下面的IF语句

if (checkID.Equals(Convert.ToInt32(txtCheck.Text)) 
    && drop == 319020000 
    || currentFloor[id][0].checkFlag == 1)
我想在这里检查以下内容:

我想核实一下这整个陈述是否属实

checkID.Equals(Convert.ToInt32(txtCheck.Text)) && drop == 319020000`
或者这句话:

currentFloor[id][0].checkFlag == 1
如果其中1个为真,则应进入循环内部


我做错了什么?

使用括号,在同一级别上有许多运算符,优先级可能会使您丧命

if ((checkID.Equals(Convert.ToInt32(txtCheck.Text)) && drop == 319020000)
    || currentFloor[id][0].checkFlag == 1)


)()

您必须使用以下附加括号

if ((checkID.Equals(Convert.ToInt32(txtCheck.Text)) && drop == 319020000) || currentFloor[id][0].checkFlag == 1)

把前两张支票放在大括号里?是什么让你认为你做错了什么?你看到了什么行为?它真的出了问题吗?在C#中,==绑定比&&哪个绑定比| |更紧,根据我的理解,这些规则可以让你用你发布的代码得到你想要的。我个人不想记住哪个先发,
&
|
。因此,我总是在应该首先开始的部分周围添加
()
,我确定这样做。什么循环?试着根据你的期望和实际发生的情况来制定一个问题。努力编写一个小的独立程序来演示这个问题。正确的链接,错误的结论。试着说明
()
会帮助哪条规则。事实上,我总是将每个比较都用括号括起来(感谢Phill的编辑)。正如上面有人所说,我不想记住优先级,所以对我来说,一个好的做法是尽可能多地使用括号。由于问题是公式化的,我会使用以下代码:if((checkID.Equals(Convert.ToInt32(txtCheck.Text))&&drop==319020000)| |(currentfool[id][0].checkFlag==1)),以确保我真的得到了我想要的,即
()
是一个很好的实践,但它们不可能是这里的答案“我在这里做错了什么?”。我只是假设if子句的行为不符合预期,我建议使用括号来确保问题不在实际比较中。关于添加括号但
a&&b|c
的10个答案中有一个与
(a&&b)|c
完全相同