Введение
Оператор модуля является математическим оператором, который используется для нахождения остатка от деления двух чисел. Этот оператор обозначается символом %. В Java оператор модуля возвращает остаток от деления первого числа на второе число. В этом практическом занятии вы познакомитесь с некоторыми примерами использования этого оператора.
Пример использования оператора модуля
В этом шаге мы рассмотрим базовый синтаксис оператора модуля и то, как его можно использовать с целочисленными и вещественными переменными. Также мы увидим, как он обрабатывает отрицательные числа.
- Создайте новый файл с именем
ModuloOperatorDemo.javaс помощью командыtouch. - Откройте файл в текстовом редакторе, таком как
nano. - Добавьте в файл следующий код:
public class ModuloOperatorDemo
{
public static void main(String[] args)
{
System.out.println("10 % 3 = " + 10 % 3);
System.out.println("3 % 10 = " + 3 % 10);
System.out.println("10.0 % 3.0 = " + 10.0 % 3.0);
System.out.println("10.0 % 3 = " + 10.0 % 3);
System.out.println("-10 % 3 = " + -10 % 3);
}
}
- Сохраните файл и выйдите из текстового редактора.
- Скомпилируйте код с помощью команды
javac ModuloOperatorDemo.java. - Запустите код с помощью команды
java ModuloOperatorDemo. - Код должен вывести следующее:
10 % 3 = 1
3 % 10 = 3
10.0 % 3.0 = 1.0
10.0 % 3 = 1.0
-10 % 3 = -1
Необходимость оператора модуля
В этом шаге мы обсудим, почему нужен оператор модуля при использовании оператора деления.
- Откройте файл
ModuloOperatorDemo.javaв текстовом редакторе. - Удалите существующий код и замените его следующим кодом:
public class ModuloOperatorDemo
{
public static void main(String[] args)
{
int dividend = 10;
int divisor = 3;
int remainder = dividend - (divisor * (dividend/divisor));
System.out.print("The remainder is: " + remainder);
}
}
- Сохраните файл и выйдите из текстового редактора.
- Скомпилируйте код с помощью команды
javac ModuloOperatorDemo.java. - Запустите код с помощью команды
java ModuloOperatorDemo. - Код должен вывести следующее:
The remainder is: 1
Когда делимое или делитель не является целым числом
В этом шаге мы увидим, как оператор модуля может обрабатывать десятичные числа.
- Откройте файл
ModuloOperatorDemo.javaв текстовом редакторе. - Удалите существующий код и замените его следующим кодом:
public class ModuloOperatorDemo
{
public static void main(String[] args)
{
double dividend = 10;
int divisor = 3;
double remainder = dividend - (divisor * (dividend/divisor));
System.out.print("The remainder is: " + remainder);
}
}
- Сохраните файл и выйдите из текстового редактора.
- Скомпилируйте код с помощью команды
javac ModuloOperatorDemo.java. - Запустите код с помощью команды
java ModuloOperatorDemo. - Код должен вывести следующее:
The remainder is: 0.0
- Измените код в файле следующим образом:
public class ModuloOperatorDemo
{
public static void main(String[] args)
{
double dividend = 10;
int divisor = 3;
double remainder = dividend % divisor;
System.out.print("The remainder is: " + remainder);
}
}
- Сохраните файл и выйдите из текстового редактора.
- Перекомпилируйте код с помощью команды
javac ModuloOperatorDemo.java. - Запустите код с помощью команды
java ModuloOperatorDemo. - Теперь код должен вывести следующее:
The remainder is: 1.0
ArithmeticException при использовании оператора модуля
В этом шаге мы увидим, как оператор модуля выбрасывает исключение, если делитель равен нулю.
- Откройте файл
ModuloOperatorDemo.javaв текстовом редакторе. - Удалите существующий код и замените его следующим кодом:
public class ModuloOperatorDemo
{
public static void main(String[] args)
{
System.out.print("The remainder is: " + 10 % 0);
}
}
- Сохраните файл и выйдите из текстового редактора.
- Скомпилируйте код с помощью команды
javac ModuloOperatorDemo.java. - Запустите код с помощью команды
java ModuloOperatorDemo. - Код должен выбросить
ArithmeticExceptionследующим образом:
Exception in thread "main" java.lang.ArithmeticException: / by zero
at ModuloOperatorDemo.main(ModuloOperatorDemo.java:3)
Найти четные числа
В этом шаге мы увидим, как оператор модуля можно использовать для проверки, является ли число четным или нечетным.
- Откройте файл
ModuloOperatorDemo.javaв текстовом редакторе. - Удалите существующий код и замените его следующим кодом:
public class ModuloOperatorDemo
{
public static void main(String[] args)
{
int[] arr = {7, 5, 2, 4, 6, 19, 18, 25, 22};
for(int i=0; i<arr.length; i++)
{
int num = arr[i];
if((num % 2) == 0)
System.out.println(num + " четное.");
else
System.out.println(num + " нечетное.");
}
}
}
- Сохраните файл и выйдите из текстового редактора.
- Скомпилируйте код с помощью команды
javac ModuloOperatorDemo.java. - Запустите код с помощью команды
java ModuloOperatorDemo. - Код должен вывести следующее:
7 нечетное.
5 нечетное.
2 четное.
4 четное.
6 четное.
19 нечетное.
18 четное.
25 нечетное.
22 четное.
Преобразовать секунды в минуты и секунды
В этом шаге мы увидим, как оператор модуля можно использовать для преобразования секунд в минуты и секунды.
- Откройте файл
ModuloOperatorDemo.javaв текстовом редакторе. - Удалите существующий код и замените его следующим кодом:
public class ModuloOperatorDemo
{
public static void main(String[] args)
{
int seconds = 401;
int minutes = seconds / 60;
int remainingSeconds = seconds % 60;
System.out.print(seconds + " секунд равно " + minutes + " минутам " + remainingSeconds + " секундам");
}
}
- Сохраните файл и выйдите из текстового редактора.
- Скомпилируйте код с помощью команды
javac ModuloOperatorDemo.java. - Запустите код с помощью команды
java ModuloOperatorDemo. - Код должен вывести следующее:
401 seconds is equal to 6 minutes 41 seconds
Извлечение отдельных цифр целого числа
В этом шаге мы увидим, как оператор модуля можно использовать для извлечения отдельных цифр из числа.
- Откройте файл
ModuloOperatorDemo.javaв текстовом редакторе. - Удалите существующий код и замените его следующим кодом:
public class ModuloOperatorDemo
{
public static void main(String[] args)
{
int num = 7912064;
while(num > 0)
{
int lastDigit = num % 10;
num = num / 10;
System.out.print(lastDigit + " ");
}
}
}
- Сохраните файл и выйдите из текстового редактора.
- Скомпилируйте код с помощью команды
javac ModuloOperatorDemo.java. - Запустите код с помощью команды
java ModuloOperatorDemo. - Код должен вывести следующее:
4 6 0 2 1 9 7
Повторять что-то каждую n-ю итерацию
В этом шаге мы увидим, как оператор модуля можно использовать для повторения действия каждую n-ю итерацию.
- Откройте файл
ModuloOperatorDemo.javaв текстовом редакторе. - Удалите существующий код и замените его следующим кодом:
public class ModuloOperatorDemo
{
public static void main(String[] args)
{
for(int i = 1; i <= 30; i++)
{
if(i % 5 == 0)
System.out.println("Сделать что-то");
}
}
}
- Сохраните файл и выйдите из текстового редактора.
- Скомпилируйте код с помощью команды
javac ModuloOperatorDemo.java. - Запустите код с помощью команды
java ModuloOperatorDemo. - Код должен вывести следующее:
Сделать что-то
Сделать что-то
Сделать что-то
Сделать что-то
Сделать что-то
Сделать что-то
Ограничить число определенным диапазоном
В этом шаге мы увидим, как оператор модуля можно использовать для ограничения числа в определенном диапазоне.
- Откройте файл
ModuloOperatorDemo.javaв текстовом редакторе. - Удалите существующий код и замените его следующим кодом:
public class ModuloOperatorDemo
{
public static void main(String[] args)
{
String[] dayNames = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
int dayOfTheMonth1 = 21;
String dayName1 = dayNames[(dayOfTheMonth1 - 1) % 7];
int dayOfTheMonth2 = 12;
String dayName2 = dayNames[(dayOfTheMonth2 - 1) % 7];
System.out.println(dayOfTheMonth1 + " попадает на " + dayName1);
System.out.println(dayOfTheMonth2 + " попадает на " + dayName2);
}
}
- Сохраните файл и выйдите из текстового редактора.
- Скомпилируйте код с помощью команды
javac ModuloOperatorDemo.java. - Запустите код с помощью команды
java ModuloOperatorDemo. - Код должен вывести следующее:
21 occurs on Sunday
12 occurs on Friday
Делать число полностью делимым на другое число
В этом шаге мы увидим, как оператор модуля можно использовать для того, чтобы сделать число полностью делимым на другое число.
- Откройте файл
ModuloOperatorDemo.javaв текстовом редакторе. - Удалите существующий код и замените его следующим кодом:
public class ModuloOperatorDemo
{
public static void main(String[] args)
{
int X = 291;
int Y = 17;
int remainder = X % Y;
X = X - remainder;
System.out.println("Минимальное число для вычитания: " + remainder);
System.out.println("Число после вычитания: " + X);
}
}
- Сохраните файл и выйдите из текстового редактора.
- Скомпилируйте код с помощью команды
javac ModuloOperatorDemo.java. - Запустите код с помощью команды
java ModuloOperatorDemo. - Код должен вывести следующее:
The minimum number to subtract is: 2
The number after subtraction is: 289
Резюме
Оператор модуля - это математический оператор, который используется для нахождения остатка от деления двух чисел. В этом практическом занятии мы рассмотрели различные сценарии использования оператора модуля, такие как проверка четности числа, преобразование секунд в минуты и секунды, извлечение отдельных цифр, повторение действия каждую n-ю итерацию, ограничение числа в определенном диапазоне и деление числа на другое без остатка. Обратите внимание, что при использовании оператора модуля делитель не может быть равен нулю, так как это вызовет ArithmeticException.



