Как проверить, находится ли целое число в заданном диапазоне? - PullRequest
58 голосов
/ 07 апреля 2011

Надеясь на что-то более элегантное, чем

if (i>0 && i<100) 

Ответы [ 18 ]

1 голос
/ 01 октября 2014

Используйте этот код:

if (lowerBound <= val && val < upperBound)
or
if (lowerBound <= val && val <= upperBound)
1 голос
/ 07 апреля 2011

Попробуйте:

if (i>0 && i<100) {} 

это будет работать как минимум;)

0 голосов
/ 10 июля 2018

Еще один претенциозный способ сделать это:

if (IntStream.rangeClosed(1, 99).anyMatch(x -> x == i)) {
    // ...
}
0 голосов
/ 04 февраля 2018

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

return  ((x-low) <= (high-low));

Более общее и безопасное решение будет:

return ((x-high)*(x-low) <= 0);
0 голосов
/ 07 апреля 2011

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

0 голосов
/ 26 июля 2018

если вы используете данные Spring, вы также можете использовать объект Range из Spring.

range = new org.springframework.data.domain.Range (3, 8); range.contains (5) вернет true.

0 голосов
/ 06 мая 2019
 Range<Long> timeRange = Range.create(model.getFrom(), model.getTo());
    if(timeRange.contains(systemtime)){
        Toast.makeText(context, "green!!", Toast.LENGTH_SHORT).show();
    }
0 голосов
/ 18 мая 2016
    val = val < MIN ? MIN : ( val > MAX ? MAX : val);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...