2011-11-02 39 views
5

我有javascrit一个变量,初始化为0。我希望做的是这样的:更改从0-> 1或1-> 0的值,只有数学运算

  • 如果该值为0,将其更改为1;
  • 如果值为1,则将其更改为0;

我将避免条件语句(如if/else)来检查值是什么。

我想我只是做一些材料操作;我认为一个不操作,但我不知道该怎么做操作,而不

+0

**为什么**你想避免if/else?任何原因? –

+0

没有特定的原因。只是我认为有一种方法可以更快地将值从0-> 1或1-> 0更改,而无需首先检查并设置值... – markzzz

+0

“quick”是指代码的性能吗?如果是这样,那么你看到的是错误的结局:你的微观优化,你可能会*在代码错误的一方做它。在尝试优化之前,确保你**测量**。 –

回答

22
x = 1-x; 
3

您可以使用XOR运算符:

​​
2

如果变量是比方说,我

I = 1 - I,应该做的伎俩

若i = 0,1 - 0 = 1比I = 1

若i = 1,1 - 1 = 0比我= 0

0

这里是另外一个符号,它也改变了真,假以1 0

x = +x; 

如果你想切换值

x = +!x; 
0

短XOR语法:

x ^= 1 

互换0〜1和1为0。