Как проверить, находится ли число в определенном диапазоне в Java

JavaJavaBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь проверять, находится ли число в определенном диапазоне на Java. Мы рассмотрим основные концепции определения числового диапазона с использованием нижней и верхней границ, применение логических операторов для выполнения проверки диапазона и понять, как включать граничные значения в сравнения диапазонов. С помощью практических упражнений вы получите практический опыт внедрения этих методов в код на Java.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java/BasicSyntaxGroup -.-> java/data_types("Data Types") java/BasicSyntaxGroup -.-> java/operators("Operators") java/BasicSyntaxGroup -.-> java/booleans("Booleans") java/BasicSyntaxGroup -.-> java/if_else("If...Else") subgraph Lab Skills java/data_types -.-> lab-559970{{"Как проверить, находится ли число в определенном диапазоне в Java"}} java/operators -.-> lab-559970{{"Как проверить, находится ли число в определенном диапазоне в Java"}} java/booleans -.-> lab-559970{{"Как проверить, находится ли число в определенном диапазоне в Java"}} java/if_else -.-> lab-559970{{"Как проверить, находится ли число в определенном диапазоне в Java"}} end

Определение диапазона с нижней и верхней границами

На этом этапе мы научимся определять числовой диапазон с использованием нижней и верхней границ на Java. Понимание работы с диапазонами является фундаментальным концептом в программировании, которое позволяет нам проверять, находится ли значение в определенном наборе чисел.

Диапазон представляет собой просто набор чисел между начальной точкой (нижней границей) и конечной точкой (верхней границей). Например, диапазон между 1 и 10 включает все числа от 1 до 10.

Давайте создадим простую программу на Java для определения и работы с диапазоном.

  1. Откройте файл HelloJava.java в редакторе WebIDE, если он еще не открыт. Мы будем изменять этот файл для нашей новой программы.

  2. Замените все содержимое файла следующим кодом:

    public class HelloJava {
        public static void main(String[] args) {
            // Define the lower and upper bounds of the range
            int lowerBound = 10;
            int upperBound = 50;
    
            // Print the defined range
            System.out.println("Defined Range: [" + lowerBound + ", " + upperBound + "]");
        }
    }

    Давайте рассмотрим новые части этого кода:

    • int lowerBound = 10;: Эта строка объявляет целочисленную переменную с именем lowerBound и присваивает ей значение 10. Это наша начальная точка для диапазона.
    • int upperBound = 50;: Эта строка объявляет целочисленную переменную с именем upperBound и присваивает ей значение 50. Это наша конечная точка для диапазона.
    • System.out.println("Defined Range: [" + lowerBound + ", " + upperBound + "]");: Эта строка выводит сообщение в консоль, показывающее определенный диапазон с использованием значений lowerBound и upperBound. Символ + используется для объединения текстовых строк и значений переменных.
  3. Сохраните файл (Ctrl+S или Cmd+S).

  4. Теперь давайте скомпилируем нашу измененную программу. Откройте Терминал в нижней части WebIDE и убедитесь, что вы находитесь в каталоге ~/project. Затем выполните следующую команду:

    javac HelloJava.java

    Если нет ошибок, компиляция прошла успешно.

  5. Наконец, давайте запустим программу, чтобы увидеть вывод. В Терминале выполните:

    java HelloJava

    Вы должны увидеть следующий вывод:

    Defined Range: [10, 50]

    Это подтверждает, что наша программа правильно определила и вывела нижнюю и верхнюю границы диапазона.

На следующем этапе мы научимся проверять, находится ли число в этом определенном диапазоне с использованием логических операторов.

Использование логических операторов для проверки диапазона

На этом этапе мы научимся использовать логические операторы в Java для проверки, находится ли число в диапазоне, который мы определили на предыдущем этапе. Логические операторы используются для объединения или модификации булевых выражений (выражений, которые могут быть либо истинными, либо ложными).

Для проверки, находится ли число в диапазоне, определенном нижней и верхней границами, нам нужно проверить два условия:

  1. Является ли число больше или равно нижней границе?
  2. Является ли число меньше или равно верхней границе?

Оба этих условия должны быть истинными, чтобы число находилось в диапазоне. В Java мы используем логический оператор И (&&) для объединения этих двух условий.

Давайте изменим нашу программу HelloJava.java, чтобы включить в нее проверку диапазона.

  1. Откройте файл HelloJava.java в редакторе WebIDE.

  2. Измените метод main, чтобы включить переменную для числа, которое нужно проверить, и логику проверки диапазона. Замените существующее содержимое метода main следующим:

        public static void main(String[] args) {
            // Define the lower and upper bounds of the range
            int lowerBound = 10;
            int upperBound = 50;
    
            // Define the number to check
            int numberToCheck = 35;
    
            // Check if the number is within the range using logical operators
            boolean isInRange = (numberToCheck >= lowerBound) && (numberToCheck <= upperBound);
    
            // Print the result
            System.out.println("Defined Range: [" + lowerBound + ", " + upperBound + "]");
            System.out.println("Number to Check: " + numberToCheck);
            System.out.println("Is " + numberToCheck + " within the range? " + isInRange);
        }

    Вот что мы добавили:

    • int numberToCheck = 35;: Эта строка объявляет целочисленную переменную numberToCheck и присваивает ей значение 35. Это число, которое мы хотим проверить по отношению к нашему диапазону.
    • boolean isInRange = (numberToCheck >= lowerBound) && (numberToCheck <= upperBound);: Это ядро нашей проверки диапазона.
      • numberToCheck >= lowerBound: Эта часть проверяет, является ли numberToCheck больше или равно lowerBound.
      • numberToCheck <= upperBound: Эта часть проверяет, является ли numberToCheck меньше или равно upperBound.
      • &&: Это логический оператор И. Он возвращает true только в том случае, если оба условия слева и справа от него являются true.
      • Результат всего этого выражения (true или false) сохраняется в булевой переменной с именем isInRange.
    • Теперь строки System.out.println также выводят число, которое проверяется, и результат проверки диапазона.
  3. Сохраните файл (Ctrl+S или Cmd+S).

  4. Скомпилируйте измененную программу в Терминале:

    javac HelloJava.java
  5. Запустите скомпилированную программу:

    java HelloJava

    Вы должны увидеть вывод, похожий на следующий:

    Defined Range: [10, 50]
    Number to Check: 35
    Is 35 within the range? true

    Поскольку 35 действительно находится между 10 и 50 (включительно), программа правильно выводит true.

Попробуйте изменить значение numberToCheck на число вне диапазона (например, 5 или 60) и перекомпилируйте и перезапустите программу, чтобы увидеть, как изменится вывод.

Включение граничных значений в диапазон

На предыдущем этапе мы использовали операторы >= (больше или равно) и <= (меньше или равно) для проверки, находится ли число в диапазоне. Эти операторы являются важными, так как они включают граничные значения (нижнюю и верхнюю границы) в проверку диапазона.

Например, если наш диапазон [10, 50], число считается находящимся в диапазоне, если оно равно 10, 50 или любому числу между 10 и 50. Если бы мы использовали операторы > (больше) и < (меньше), то диапазон был бы (10, 50), что означает, что сами числа 10 и 50 не были бы включены.

Давайте подтвердим это поведение, проверив нашу программу с граничными значениями.

  1. Откройте файл HelloJava.java в редакторе WebIDE.

  2. Мы проверим проверку диапазона с нижней и верхней границами. Измените метод main, чтобы проверить как lowerBound, так и upperBound в качестве numberToCheck.

    public class HelloJava {
        public static void main(String[] args) {
            // Define the lower and upper bounds of the range
            int lowerBound = 10;
            int upperBound = 50;
    
            // Test with the lower bound
            int numberToCheck1 = lowerBound;
            boolean isInRange1 = (numberToCheck1 >= lowerBound) && (numberToCheck1 <= upperBound);
            System.out.println("Defined Range: [" + lowerBound + ", " + upperBound + "]");
            System.out.println("Number to Check: " + numberToCheck1);
            System.out.println("Is " + numberToCheck1 + " within the range? " + isInRange1);
            System.out.println("---"); // Separator for clarity
    
            // Test with the upper bound
            int numberToCheck2 = upperBound;
            boolean isInRange2 = (numberToCheck2 >= lowerBound) && (numberToCheck2 <= upperBound);
            System.out.println("Number to Check: " + numberToCheck2);
            System.out.println("Is " + numberToCheck2 + " within the range? " + isInRange2);
        }
    }

    Мы добавили второй тестовый случай, используя numberToCheck2, установленный равным upperBound.

  3. Сохраните файл (Ctrl+S или Cmd+S).

  4. Скомпилируйте измененную программу в Терминале:

    javac HelloJava.java
  5. Запустите скомпилированную программу:

    java HelloJava

    Вы должны увидеть вывод, похожий на следующий:

    Defined Range: [10, 50]
    Number to Check: 10
    Is 10 within the range? true
    ---
    Number to Check: 50
    Is 50 within the range? true

    Как вы можете видеть, как 10 (нижняя граница), так и 50 (верхняя граница) правильно определяются как находящиеся в диапазоне, потому что мы использовали операторы >= и <=. Это подтверждает, что наша проверка диапазона включает граничные значения.

Понимание того, включает ли диапазон свои границы (включительно) или исключает их (исключительно), является важным при определении условий в ваших программах. Операторы >= и <= создают диапазон с включением границ.

Резюме

В этом практическом занятии (лабораторной работе) мы научились определять числовой диапазон в Java, устанавливая нижнюю и верхнюю границы с использованием целочисленных переменных. Мы изменили простую Java - программу, чтобы объявить эти границы и вывести определенный диапазон на консоль, поняв, как комбинировать текст и значения переменных для вывода. Этот фундаментальный шаг является важным для последующей проверки, находится ли число в этом заданном диапазоне.