(!x++||y--)
时间: 2024-06-10 17:02:54 浏览: 85
表达式 "!x++ || y--" 是一个C/C++中的条件运算符和自增/自减操作的组合。在C++中,这种表达式的含义如下:
1. `!x++`:首先,它会对 `x` 进行逻辑非 (`!`) 操作,如果 `x` 的当前值为真(非零),结果为假(0);如果 `x` 的当前值为假(零),结果为真(1)。然后,这个操作会执行自增 (`x++`),即 `x` 的值增加1,但条件判断的结果不会改变。
2. `|| y--`:接着是逻辑或 (`||`) 操作,如果前面的 `!x++` 结果为真,那么整个表达式的结果就是真,否则会继续判断 `y--`,即 `y` 的值减少1,不论 `!x++` 结果如何。
需要注意的是,`y--` 是在 `||` 运算符之后立即执行的,这意味着即使 `!x++` 为真,`y` 的值也会先减少1。这是在某些特定上下文中可能会有所区别,比如在一个循环的条件判断中。
相关问题
将下列javascript代码改写成typescirpt: const STATE = cc.Enum({ IDLE:1, ATTACK:2, MOVE:3, DODGE:4 }) module.exports = { State:STATE, checkCollide(o,n,long=0){ return !(!n || o.x - n.cW.x-long > n.x + n.cW.x || o.x + o.cW.x + long < n.x - n.cW.x || o.y > n.y + n.cW.y || o.y + o.cW.y < n.y); }, boundary:1620, }
0.0-rc-5/include --proto_path=/usr/protobuf-3.0.0-rc-5/include --proto_pathconst STATE = cc.Enum({
IDLE = 1,
ATTACK = 2,
MOVE = 3,
DODGE=/usr/local/protobuf-3.0.0-rc-6/include --proto_path=/usr/protobuf-3.0.0 = 4
});
export const State = STATE;
export function checkCollide(o: any, n: any, long = 0):-rc-6/include --proto_path=/usr/local/protobuf-3.0.0-rc-7/include --proto_path=/usr boolean {
return !(!n || o.x - n.cW.x - long > n.x + n.cW.x || o.x +/protobuf-3.0.0-rc-7/include --proto_path=/usr/local/protobuf-3.0.0-rc o.cW.x + long < n.x - n.cW.x || o.y > n.y + n.cW.y || o.y +-8/include --proto_path=/usr/protobuf-3.0.0-rc-8/include --proto_path=/usr/local/protobuf o.cW.y < n.y);
}
export const boundary = 1620;
写出文法是:E=E+T|E-T|T,T=T*F|T/F|F,F=F!P|P,P=(E)|N(L)|id,N=sin|cos|exp|abs|log|int,L=L,E|E的句子x+y/y!2的派生树。
E -> E + T | E - T | T
T -> T * F | T / F | F
F -> F ! P | P
P -> (E) | N(L) | id
N -> sin | cos | exp | abs | log | int
L -> L , E | E
句子 x + y / y!2 的派生树如下:
E
|
E + T
| |
T F
| | |
F P P
| | | |
id E / F N(L)
| | | | |
x T F L |
| | | |
y / P E
| | |
y ! 2
阅读全文