0

我是另一个使用 devkit pro 为 nds 编写 c++ 的新手,令人惊讶的是,我在网上找不到任何关于此的内容。如何编写如下的 or 语句:

if ((keys & KEY_L && LR==true) or (keys & KEY_X && LR==false))
{
    ...
}

如果您想说“如果按下 L 键...”,您将使用“if (keys & KEY_L)...”

那么我怎么说“如果 LR 为真,按下 L 键,或者如果 LR 为假,按下 X 键”

4

4 回答 4

2

LR == true(注意双等号,否则你写的是赋值而不是比较!)是不必要的:只需使用LR. 同样,使用!LR代替LR == false. 此外,添加几个括号也不会受到伤害:

if (((keys & KEY_L) && LR) || ((keys & KEY_X) && !LR))
{
    ...
}
于 2013-03-04T19:28:10.560 回答
0

你很近。出于某种奇怪的原因,&&and||运算符的优先级高于 | 和&,所以你需要一些额外的括号:

你需要使用 == 来检查是否相等。

改变这个:

if ((keys & KEY_L && LR=true) or (keys & KEY_X && LR=false))

对此:

if (((keys & KEY_L) && LR==true) or ((keys & KEY_X) && LR==false))
于 2013-03-04T19:29:28.417 回答
0

几乎就像您所做的那样,仅==用于相等比较:

if ((keys & KEY_L && LR==true) || (keys & KEY_X && LR==false))
{
    ...
}

虽然or会起作用,但它只是||. 此外,您可以更改LR==false为 just !LR

于 2013-03-04T19:27:57.860 回答
-1
  1. &学习和之间的区别&&
  2. ==学习和之间的区别=
  3. 了解如何if工作。 和...if(val == true)一样if(val)
  4. 使用括号分组来制作更小的布尔表达式并构建它们。
于 2013-03-04T19:28:09.217 回答