【问题标题】:Incompatible operand types int and int[]不兼容的操作数类型 int 和 int[]
【发布时间】:2019-03-07 17:31:24
【问题描述】:

我正在开发一个能够识别手机重量并将值写入数据库的 Java 应用程序。但是,我遇到了权重 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");

【问题讨论】:

  • weight == phoneWeight 正在比较一个 int 和一个 int 数组。你在那里的意图是什么?那永远不会是真的。您的意思是检查weight 是否在 数组中?
  • @Carcigenicate 没错,我希望秤上的重量等于数组中的重量。
  • 那么,您是否要检查 weight 本身是否在数组中,或者像答案所暗示的那样在数组中的两个数字之间?
  • @Carcigenicate 在两个数字之间。

标签: java arrays int


【解决方案1】:

weight == phoneWeight 正在尝试比较 int (weight) 和 int[] (phoneWeight)。这不可能是真的。

如果你想检查它是否在数组中的两个数字之间,你必须明确地检查:

if(phoneWeight[0] <= weight && weight <= phoneWeight[1]) {

如果您希望边界是独占的,请使用 &lt; 而不是 &lt;=。这也假设第一个数字是下限,而第二个数字是上限。

【讨论】:

  • 非常感谢您的帮助!
【解决方案2】:

这是一个整数数组。您不能将 int 与数组进行比较。

int[] phoneWeight = {140, 150};

如果我理解正确,您必须检查重量是否高于最小值和低于最大值,以便手机在秤上(在两个值之间)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    相关资源
    最近更新 更多