我正在研究Java应用程序,该应用程序可以识别电话的重量并将这些值写入数据库。但是,我遇到了一个问题,其中weight int与if语句中数组'phoneWeight'中的值不兼容。我想知道是否有一种简单的方法可以克服这个问题?
int weight = (data[4] & 0xFF) + (data[5] << 8);
boolean phoneOnScale = false;
int[] phoneWeight = {140, 150};
System.out.println("My Weight: " + weight);
if (weight == phoneWeight) {
phoneOnScale = true;
System.out.println("Phone is on scale");
答案 0 :(得分:0)
这是一个int数组。您不能将int与数组进行比较。
int[] phoneWeight = {140, 150};
如果我理解的正确,那么您必须检查重量是否大于最小值且小于最大值,以使电话达到刻度(在两个值之间)。
答案 1 :(得分:0)
weight == phoneWeight
试图比较int
(weight
)和int[]
(phoneWeight
)。这永远不可能是真的。
如果要检查它是否在数组的两个数字之间,则必须显式检查:
if(phoneWeight[0] <= weight && weight <= phoneWeight[1]) {
如果希望边界互斥,请使用<
代替<=
。这也假设第一个数字是下限,而第二个数字是上限。