问题描述
这是大型Java程序的一行,该程序可以正确编译。我无法理解在赋值语句右侧如何使用<=运算符:
converged = measure.distance(centroid.getLengthSquared(),centroid,getCenter()) <= convergenceDelta;
这是一些晦涩的Java功能吗?
解决方法
不,这不对。
如您所见,“ 1”将是“ 2”类型。
这和说的完全一样
boolean foo = 2 <= 3;
因此,可能在您的代码measure.distance(centroid.getLengthSquared(),centroid,getCenter())
中返回了一个数字,然后将其与关系ѭ5compared运算符进行比较
与convergenceDelta;
。结果将是true
或false
,这是一个布尔值,它将
保存在converged
。
, 一点也不。 <=
和其他关系运算符返回布尔值。如果converged
是布尔变量,则可以为其分配值。
, 将其设置为收敛到距离小于或等于变量convergenceDelta上的值的真值语句。
, <=是一个二进制运算符。如果LHS <= RHS,则它的值为true,否则为false。
因此,在这种情况下,如果距离小于会聚增量,则视为已收敛。