Size: a a a

2020 July 01

AF

Alex F in learn.java
Вопрос из OCA.
boolean x = true, z = true;
int y = 20;
x = (y != 10) ^ (z = false);
The expression (z=false) assigns the value false to z and returns false for the
entire expression.
То есть тут суть в том, что в правой половине z сначала делается false, а затем его значение уже подставляется в XOR?
То есть можно поменять код на
z = false;
x = (y != 10) ^ z;
Я правильно понял?
источник

А

Александр in learn.java
странным образом мне это выражение возвращает true при компиляции
источник

AF

Alex F in learn.java
Если исходить из логики x = true ^ false; то и будет x = true )
источник

AF

Alex F in learn.java
Я просто не очень понимаю процессы в правой половине. Само выражение (z=false) ничего вернуть не может, хотя вроде в других ЯП можно писать a = (b=false); // a= true как результат успешного присвоения.
источник

DS

Dmitriy Shilnikov in learn.java
Alex F
Я просто не очень понимаю процессы в правой половине. Само выражение (z=false) ничего вернуть не может, хотя вроде в других ЯП можно писать a = (b=false); // a= true как результат успешного присвоения.
В джаве точно так же операция присваивания возвращает результат присваивания.
источник

AF

Alex F in learn.java
Dmitriy Shilnikov
В джаве точно так же операция присваивания возвращает результат присваивания.
Я имел в виду то, что присвоится не результат, а true как показатель успешного присвоения )
Вроде видел такое где-то, но это не точно.
Про присвоение у нас вроде начал понимать, спасибо.
источник

N🌌

Nazarii 🌌 in learn.java
Alex F
Вопрос из OCA.
boolean x = true, z = true;
int y = 20;
x = (y != 10) ^ (z = false);
The expression (z=false) assigns the value false to z and returns false for the
entire expression.
То есть тут суть в том, что в правой половине z сначала делается false, а затем его значение уже подставляется в XOR?
То есть можно поменять код на
z = false;
x = (y != 10) ^ z;
Я правильно понял?
да, можно сделать присвоение в другой строке
источник

N🌌

Nazarii 🌌 in learn.java
z = false вернёт false, а не true как результат успешного присвоения
источник

N🌌

Nazarii 🌌 in learn.java
если я правильно вопрос понял
источник

N🌌

Nazarii 🌌 in learn.java
:)
источник

AF

Alex F in learn.java
Nazarii 🌌
z = false вернёт false, а не true как результат успешного присвоения
Мне не был понятен тот момент, что (z=false) возвращает новое значение z, теперь понял )
источник

N🌌

Nazarii 🌌 in learn.java
Alex F
Мне не был понятен тот момент, что (z=false) возвращает новое значение z, теперь понял )
Всё верно :)
источник

GV

Gukov Viktor in learn.java
Alex F
Мне не был понятен тот момент, что (z=false) возвращает новое значение z, теперь понял )
В любой непонятной ситуации обращайся к спеке:
15.1
If an expression denotes a variable, and a value is required for use in further evaluation, then the value of that variable is used. In this context, if the expression denotes a variable or a value, we may speak simply of the value of the expression.
https://docs.oracle.com/javase/specs/jls/se14/html/jls-15.html
источник

AF

Alex F in learn.java
Gukov Viktor
В любой непонятной ситуации обращайся к спеке:
15.1
If an expression denotes a variable, and a value is required for use in further evaluation, then the value of that variable is used. In this context, if the expression denotes a variable or a value, we may speak simply of the value of the expression.
https://docs.oracle.com/javase/specs/jls/se14/html/jls-15.html
> then the value of that variable is used
мучас грасиас )
источник
2020 July 02

E

Em. in learn.java
Alex F
Вопрос из OCA.
boolean x = true, z = true;
int y = 20;
x = (y != 10) ^ (z = false);
The expression (z=false) assigns the value false to z and returns false for the
entire expression.
То есть тут суть в том, что в правой половине z сначала делается false, а затем его значение уже подставляется в XOR?
То есть можно поменять код на
z = false;
x = (y != 10) ^ z;
Я правильно понял?
Тут больше тест на внимательность. Автор думает что ты увидишь z == false, а не z = false;
источник

Е

Евгений in learn.java
Em.
Тут больше тест на внимательность. Автор думает что ты увидишь z == false, а не z = false;
процентов 30% OCA на внимательность)
источник

Е

Евгений in learn.java
у меня еще свежа моя сдача в голове)
источник

SC

Sergey C. in learn.java
(10 >= sum && 20 <= sum)

Нужно проверить что sum больше или равен 10 и меньше или равен 20.
Что тут не так?
источник

СА

Сергей Азаров... in learn.java
Sergey C.
(10 >= sum && 20 <= sum)

Нужно проверить что sum больше или равен 10 и меньше или равен 20.
Что тут не так?
Поменяй sum с числами местами
источник

N🌌

Nazarii 🌌 in learn.java
Sergey C.
(10 >= sum && 20 <= sum)

Нужно проверить что sum больше или равен 10 и меньше или равен 20.
Что тут не так?
всё так.
Насчёт вкусовщины:
отдельную переменную result можешь не создавать. Короче и понятней будет.
источник