Проверьте, является ли одно условие Java подмножеством другого условия - PullRequest
0 голосов
/ 11 января 2019

У меня есть сценарий использования, в котором я должен проверить, является ли одно условие подмножеством другого условия. Это означает, что набор результатов, который удовлетворяет условию 2, будет подмножеством набора результатов, который удовлетворяет условию 1.

Я проверял, и Intellij выясняет это во время проверки кода

if (x < 7 && x > 1) {
      return true;
} else if (x > 3 && x <6) {
      return false;
}

Здесь, во время проверки кода, подчеркивается, что результат второго условия всегда ложен.

Итак, как это реализовано?

1 Ответ

0 голосов
/ 11 января 2019

Этот диапазон:

(x > 3 && x <6)

является поддиапазоном:

(x < 7 && x > 1)

так что если условие (x < 7 && x > 1)

  1. равно true, тогда это условие (x > 3 && x <6) не будет достигнуто
  2. равно false, тогда это условие (x > 3 && x <6) также false
    Итак, смысл проверки кода:
    если достигнут (x > 3 && x <6), то всегда будет false .

Правильный способ реализации вашей логики должен состоять в том, чтобы сначала проверить поддиапазон:

if (x > 3 && x <6) {
    return false;
} else if (x > 1 && x < 7) {
    return true;
} else {
    return ....;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...