Подтвердить что ты не робот

Самый элегантный способ изменить 0 на 1 и наоборот

Какой самый элегантный способ сделать следующий материал:

int i = oneOrZero;

if (i == 0) {
   i = 1;
} else {
   i = 0;
}

Можно предположить, что i может иметь только 1 или 0. Значение

4b9b3361

Ответ 1

i ^= 1;

XOR значение с 1. Это дает вам оба пути (если вам нужно перевернуть 0 <--> 1 в любом случае):

0 ^ 1 = 1
1 ^ 1 = 0

Ответ 2

Вычитание?

i = 1 - i;

Ответ 3

i = ( i + 1 ) % 2, хотя я думаю, что мы все согласны с тем, что метод вычитания или xor лучше! (Хотя он имеет дополнительное преимущество "перевернуть переключатель" больше, чем двоичный.)

Ответ 4

i = (i == 0)?1:0 - это один из способов, хотя мне нравятся версии @Jimmy и @Yuval.

Ответ 5

Использовать бит xor

i ^= 1;

Ответ 6

int x = 0;
x=(int)Math.cos(x);
System.out.println("X value "+x);