Ответ 1
i ^= 1;
XOR значение с 1. Это дает вам оба пути (если вам нужно перевернуть 0 <--> 1
в любом случае):
0 ^ 1 = 1
1 ^ 1 = 0
Какой самый элегантный способ сделать следующий материал:
int i = oneOrZero;
if (i == 0) {
i = 1;
} else {
i = 0;
}
Можно предположить, что i
может иметь только 1 или 0. Значение
i ^= 1;
XOR значение с 1. Это дает вам оба пути (если вам нужно перевернуть 0 <--> 1
в любом случае):
0 ^ 1 = 1
1 ^ 1 = 0
Вычитание?
i = 1 - i;
i = ( i + 1 ) % 2
, хотя я думаю, что мы все согласны с тем, что метод вычитания или xor лучше! (Хотя он имеет дополнительное преимущество "перевернуть переключатель" больше, чем двоичный.)
i = (i == 0)?1:0
- это один из способов, хотя мне нравятся версии @Jimmy и @Yuval.
Использовать бит xor
i ^= 1;
int x = 0;
x=(int)Math.cos(x);
System.out.println("X value "+x);