如果現(xiàn)在要寫一個控制器,對同一個按鈕進行操作并级,點擊一次是開燈,再點擊一次是開燈侮腹,以此類推嘲碧。
非常簡單,創(chuàng)建一個成員變量,然后每次使用時取反就好了就可以了父阻。
偽代碼如下:
boolean flag = false;
void onClick() {
flag = !flag;
if (flag) {
//on
} else {
//off
}
}
取反的地方在于flag = !flag;
而通過 ^=
就簡單一點
boolean flag = false;
void onClick() {
if (flag ^= true) {
//on
} else {
//off
}
}
flag ^= true
呀潭,每次操作的時候對都flag
進行了改變,并且每次改變后都值都是之前的值相反至非。
例如有個Light
對象钠署,它有一個trun()
方法每次,接收一個boolean
參數(shù)
boolean flag = false;
void onClick() {
flag = !flag;
light.trun(flag);
}
可以改成
boolean flag = false;
void onClick() {
light.trun(flag ^=true);
}
源代碼從5行
變成了4行
荒椭,整整節(jié)省了20%
!,更別提四舍五入之后的情況了谐鼎。