Какая разница между ними!= и =! на Яве? [дубликат]



этот вопрос уже есть ответ здесь:



Я смотрел на какой-то макет OCJP вопросы. Я наткнулся на действительно непонятный синтаксис. Вот это:



class OddStuff {
public static void main(String[] args) {
boolean b = false;
System.out.println((b != b));// False
System.out.println((b =! b));// True
}
}


почему выходные данные меняются между != и =!?

660   4  

4 ответов:

вопрос просто играет с вами с запутанным интервалом.

b != b обычный != (не равно) сравнение.

С другой стороны:

b =! b лучше пишется как b = !b, который анализируется как:

b = (!b)

таким образом, это два оператора.

  1. первый инверт b.
  2. затем назначьте его обратно b.

оператор присваивания возвращает присвоенное значение. Таким образом, (b =! b) оценивает в true-это то, что вы распечатываете.

b != b означает ! (b == b): напротив b == b.

b =! b на самом деле b = !b, назначение. Это переключение b's значение. Присваивание вычисляет значение выражения, так что это будет оцениваться в !b (наряду с изменением значения b).

b=!b поручение. Он назначает b to !b и выражение вычисляет результирующее значение, которое является true.

b =! b

вы делаете задание, вы говорите, что B должно иметь значение !Б.

б != b

вы спрашиваете, отличается ли B от b

Comments

    Ничего не найдено.