C# 为什么';接线员不是为我工作吗?

C# 为什么';接线员不是为我工作吗?,c#,operator-keyword,C#,Operator Keyword,我是新的编码,我目前正在我的第一个项目独自工作。我试图让程序比较一些数据,但由于某种原因,我无法使用OR(| |)运算符。有人知道为什么吗?这是一个WPF项目。 这是我的密码: 更改代码如下: while (rndNumb == las1 || rndNumb == las2) 在您的方法中,只有第一个等式“rndNumb==las1”按您的预期工作。第二个“las2”只是一个变量。因此,您正在将布尔值“true/false”与int变量进行比较。我想应该是这样的 while (rndNumb

我是新的编码,我目前正在我的第一个项目独自工作。我试图让程序比较一些数据,但由于某种原因,我无法使用OR(| |)运算符。有人知道为什么吗?这是一个WPF项目。 这是我的密码:


更改代码如下:

while (rndNumb == las1 || rndNumb == las2)
在您的方法中,只有第一个等式“rndNumb==las1”按您的预期工作。第二个“las2”只是一个变量。因此,您正在将布尔值“true/false”与int变量进行比较。

我想应该是这样的

while (rndNumber == 1as1 || rndNumber == 1as2)

|
运算符之后,您需要指定完整的布尔表达式,而不仅仅是右参数的缩写。

使您的代码如下所示:

    while ((rndNumb == las1) || (rndNumb == las2))
想象一下这样的情况:您要求计算机仅在其中一个条件出现时运行循环,因此您需要弄清楚条件是什么:


或者(rndNumb=las1)| |(rndNumb=las2),然后将其放在括号中。

rndNumber==x | | rnbNumber==y读取错误消息?我敢打赌,你已经习惯了JavaScript。提示:您需要一个bool…您是在检查
las2
是否为空,还是在检查
rndNumb
是否等于
las1
las2
?请将您的代码直接发布在答案中(以文本格式)。如果一个答案能够解释这一错误的原因,那么它将对人们帮助更大。@MongZhu给你。这应该是
while
,而不是
if
。好主意,改变了。谢谢!括号不是必需的。我之所以使用括号,不是因为它是特别必需的,而是为了使条件更具可读性(在生产环境中,这是必须的)。我同意,使用括号更容易看出这是如何解决问题的。但我以为你的意思是括号是强制性的。我个人的观点是,没有括号读起来更好,因为括号会增加混乱。