2011-11-02 67 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。