Оператор Java с меньше чем равен на правой стороне - PullRequest
0 голосов
/ 13 июня 2011

Вот строка из большой Java-программы, которая компилируется без ошибок. Я не могу понять, как оператор <= используется в правой части оператора присваивания: </p>

converged = measure.distance(centroid.getLengthSquared(), centroid, getCenter()) <= convergenceDelta;

Это какая-то неясная функция Java?

Ответы [ 4 ]

6 голосов
/ 13 июня 2011

Нет, это не так.

Как вы увидите, converged будет иметь тип boolean.

Это будет в точности то же самое, что сказать

boolean foo = 2 <= 3;

Итак, вероятно, в вашем коде measure.distance(centroid.getLengthSquared(), centroid, getCenter()) возвращает число, которое затем сравнивается с помощью реляционного оператора <= с convergenceDelta;.Результатом будет true или false, логическое значение, которое будет сохранено в converged.

1 голос
/ 13 июня 2011

Совсем нет.<= и другие реляционные операторы возвращают логические значения.Если converged является логической переменной, вы можете присвоить ей это значение.

0 голосов
/ 13 июня 2011

<= - бинарный оператор, как и любой другой. Значение true, если LHS <= RHS, и false, если нет. </p>

Таким образом, в этом случае, если расстояние меньше, чем дельта сходимости, считается, что она сходится.

0 голосов
/ 13 июня 2011

Это установка, сходящаяся к утверждению истинности расстояния, которое меньше или равно значению переменной ConvergenceDelta.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...