Как уже говорилось, =
присваивает, а ==
сравнивает.
Однако эти операторы также имеют свои собственные значения.
Оператор =
возвращает значение своего правого операнда. Вот как работают операторы типа a = b = c = 5
: они анализируются как a = (b = (c = 5))
, что соответствует a = (b = 5)
, а затем a = 5
.
Оператор ==
возвращает boolean
, то есть true
, если его операнды равны. Оператор if
запускает свое тело, если его аргумент равен true
. Таким образом, if
заголовки, такие как if (5 == 5)
, переводятся в if (true)
. Вот почему иногда вы видите бесконечные циклы while
с заголовком while (true)
; while
цикл запускает «пока» аргумент toe true.
Если бы в вашем операторе if
было boolean
, он не выдал бы ошибку и запустил бы код, если присваиваемое значение (или «по сравнению с») было true
. Вот почему так важно, чтобы никогда не смешивал операторы =
и ==
, особенно при работе с boolean
s.
Надеюсь, это помогло !!