Несовместимые типы операндов int и int [] - PullRequest
0 голосов
/ 07 марта 2019

Я работаю над приложением Java, которое распознает вес телефона и записывает значения в базу данных. Однако я столкнулся с проблемой, когда вес int не совместим со значениями в массиве «phoneWeight» в операторе if. Мне было интересно, есть ли простой способ преодолеть это?

    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");

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

weight == phoneWeight пытается сравнить int (weight) и int[] (phoneWeight).Это никогда не может быть правдой.

Если вы хотите проверить, находится ли он между двумя числами в массиве, вам придется явно проверить это:

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

Использовать <вместо <=, если вы хотите, чтобы границы были эксклюзивными.Это также предполагает, что первое число является нижней границей, а второе число является верхней границей.

0 голосов
/ 07 марта 2019

Это массив целых чисел. Вы не можете сравнить int с массивом.

int[] phoneWeight = {140, 150};

Вы должны проверить, что вес больше минимального значения и меньше максимального значения, чтобы телефон находился в масштабе (между двумя значениями), если я вас правильно понял.

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