Java 의 모듈로 연산자

JavaBeginner
지금 연습하기

소개

모듈로 연산자 (Modulo operator) 는 두 숫자의 나눗셈에서 나머지를 구하는 데 사용되는 수학 연산자입니다. 이 연산자는 기호 %로 표시됩니다. Java 에서 모듈로 연산자는 첫 번째 숫자를 두 번째 숫자로 나눈 나머지를 반환합니다. 이 Lab 에서는 이 연산자의 몇 가지 사용 사례를 안내합니다.

모듈로 연산자 예시

이 단계에서는 모듈로 연산자의 기본 구문과 정수 및 부동 소수점 변수에 어떻게 사용될 수 있는지 살펴보겠습니다. 또한 음수를 어떻게 처리하는지도 살펴보겠습니다.

  1. touch 명령을 사용하여 ModuloOperatorDemo.java라는 새 파일을 생성합니다.
  2. nano와 같은 텍스트 편집기에서 파일을 엽니다.
  3. 파일에 다음 코드를 추가합니다.
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);
    }
}
  1. 파일을 저장하고 텍스트 편집기를 종료합니다.
  2. javac ModuloOperatorDemo.java 명령을 사용하여 코드를 컴파일합니다.
  3. java ModuloOperatorDemo 명령을 사용하여 코드를 실행합니다.
  4. 코드는 다음을 출력해야 합니다.
10 % 3 = 1
3 % 10 = 3
10.0 % 3.0 = 1.0
10.0 % 3 = 1.0
-10 % 3 = -1

모듈로 연산자의 필요성

이 단계에서는 나눗셈 연산자를 사용할 때 모듈로 연산자가 왜 필요한지 논의하겠습니다.

  1. 텍스트 편집기에서 ModuloOperatorDemo.java 파일을 엽니다.
  2. 기존 코드를 제거하고 다음 코드로 바꿉니다.
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);
    }
}
  1. 파일을 저장하고 텍스트 편집기를 종료합니다.
  2. javac ModuloOperatorDemo.java 명령을 사용하여 코드를 컴파일합니다.
  3. java ModuloOperatorDemo 명령을 사용하여 코드를 실행합니다.
  4. 코드는 다음을 출력해야 합니다.
The remainder is: 1

피제수 또는 제수가 정수가 아닌 경우

이 단계에서는 모듈로 연산자가 소수를 어떻게 처리하는지 살펴보겠습니다.

  1. 텍스트 편집기에서 ModuloOperatorDemo.java 파일을 엽니다.
  2. 기존 코드를 제거하고 다음 코드로 바꿉니다.
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);
    }
}
  1. 파일을 저장하고 텍스트 편집기를 종료합니다.
  2. javac ModuloOperatorDemo.java 명령을 사용하여 코드를 컴파일합니다.
  3. java ModuloOperatorDemo 명령을 사용하여 코드를 실행합니다.
  4. 코드는 다음을 출력해야 합니다.
The remainder is: 0.0
  1. 파일의 코드를 다음과 같이 수정합니다.
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);
    }
}
  1. 파일을 저장하고 텍스트 편집기를 종료합니다.
  2. javac ModuloOperatorDemo.java 명령을 사용하여 코드를 다시 컴파일합니다.
  3. java ModuloOperatorDemo 명령을 사용하여 코드를 실행합니다.
  4. 코드는 이제 다음을 출력해야 합니다.
The remainder is: 1.0

모듈로 연산자 ArithmeticException 발생

이 단계에서는 제수가 0 일 경우 모듈로 연산자가 어떻게 예외를 발생시키는지 살펴보겠습니다.

  1. 텍스트 편집기에서 ModuloOperatorDemo.java 파일을 엽니다.
  2. 기존 코드를 제거하고 다음 코드로 바꿉니다.
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        System.out.print("The remainder is: " + 10 % 0);
    }
}
  1. 파일을 저장하고 텍스트 편집기를 종료합니다.
  2. javac ModuloOperatorDemo.java 명령을 사용하여 코드를 컴파일합니다.
  3. java ModuloOperatorDemo 명령을 사용하여 코드를 실행합니다.
  4. 코드는 다음과 같이 ArithmeticException을 발생시켜야 합니다.
Exception in thread "main" java.lang.ArithmeticException: / by zero
        at ModuloOperatorDemo.main(ModuloOperatorDemo.java:3)

짝수 찾기

이 단계에서는 모듈로 연산자를 사용하여 숫자가 짝수인지 홀수인지 확인하는 방법을 살펴보겠습니다.

  1. 텍스트 편집기에서 ModuloOperatorDemo.java 파일을 엽니다.
  2. 기존 코드를 제거하고 다음 코드로 바꿉니다.
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 + " is even.");
            else
                System.out.println(num + " is NOT even.");
        }
    }
}
  1. 파일을 저장하고 텍스트 편집기를 종료합니다.
  2. javac ModuloOperatorDemo.java 명령을 사용하여 코드를 컴파일합니다.
  3. java ModuloOperatorDemo 명령을 사용하여 코드를 실행합니다.
  4. 코드는 다음을 출력해야 합니다.
7 is NOT even.
5 is NOT even.
2 is even.
4 is even.
6 is even.
19 is NOT even.
18 is even.
25 is NOT even.
22 is even.

초를 분과 초로 변환

이 단계에서는 모듈로 연산자를 사용하여 초를 분과 초로 변환하는 방법을 살펴보겠습니다.

  1. 텍스트 편집기에서 ModuloOperatorDemo.java 파일을 엽니다.
  2. 기존 코드를 제거하고 다음 코드로 바꿉니다.
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        int seconds = 401;
        int minutes = seconds / 60;
        int remainingSeconds = seconds % 60;
        System.out.print(seconds + " seconds is equal to " + minutes +" minutes " + remainingSeconds + " seconds");
    }
}
  1. 파일을 저장하고 텍스트 편집기를 종료합니다.
  2. javac ModuloOperatorDemo.java 명령을 사용하여 코드를 컴파일합니다.
  3. java ModuloOperatorDemo 명령을 사용하여 코드를 실행합니다.
  4. 코드는 다음을 출력해야 합니다.
401 seconds is equal to 6 minutes 41 seconds

정수의 각 자리 숫자 추출

이 단계에서는 모듈로 연산자를 사용하여 숫자에서 개별 자릿수를 추출하는 방법을 살펴보겠습니다.

  1. 텍스트 편집기에서 ModuloOperatorDemo.java 파일을 엽니다.
  2. 기존 코드를 제거하고 다음 코드로 바꿉니다.
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 + " ");
        }
    }
}
  1. 파일을 저장하고 텍스트 편집기를 종료합니다.
  2. javac ModuloOperatorDemo.java 명령을 사용하여 코드를 컴파일합니다.
  3. java ModuloOperatorDemo 명령을 사용하여 코드를 실행합니다.
  4. 코드는 다음을 출력해야 합니다.
4 6 0 2 1 9 7

n 번째마다 특정 작업 반복

이 단계에서는 모듈로 연산자를 사용하여 매 n 번째마다 작업을 반복하는 방법을 살펴보겠습니다.

  1. 텍스트 편집기에서 ModuloOperatorDemo.java 파일을 엽니다.
  2. 기존 코드를 제거하고 다음 코드로 바꿉니다.
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        for(int i = 1; i <= 30; i++)
        {
            if(i % 5 == 0)
                System.out.println("Do Something");
        }
    }
}
  1. 파일을 저장하고 텍스트 편집기를 종료합니다.
  2. javac ModuloOperatorDemo.java 명령을 사용하여 코드를 컴파일합니다.
  3. java ModuloOperatorDemo 명령을 사용하여 코드를 실행합니다.
  4. 코드는 다음을 출력해야 합니다.
Do Something
Do Something
Do Something
Do Something
Do Something
Do Something

숫자를 특정 범위로 제한하기

이 단계에서는 모듈로 연산자를 사용하여 숫자를 특정 범위로 제한하는 방법을 살펴보겠습니다.

  1. 텍스트 편집기에서 ModuloOperatorDemo.java 파일을 엽니다.
  2. 기존 코드를 제거하고 다음 코드로 바꿉니다.
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 + " occurs on " + dayName1);
        System.out.println(dayOfTheMonth2 + " occurs on " + dayName2);
    }
}
  1. 파일을 저장하고 텍스트 편집기를 종료합니다.
  2. javac ModuloOperatorDemo.java 명령을 사용하여 코드를 컴파일합니다.
  3. java ModuloOperatorDemo 명령을 사용하여 코드를 실행합니다.
  4. 코드는 다음을 출력해야 합니다.
21 occurs on Sunday
12 occurs on Friday

숫자를 다른 숫자로 완전히 나누어 떨어지게 만들기

이 단계에서는 모듈로 연산자를 사용하여 숫자를 다른 숫자로 완전히 나누어 떨어지게 만드는 방법을 살펴보겠습니다.

  1. 텍스트 편집기에서 ModuloOperatorDemo.java 파일을 엽니다.
  2. 기존 코드를 제거하고 다음 코드로 바꿉니다.
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("The minimum number to subtract is: " + remainder);
        System.out.println("The number after subtraction is: " + X);
    }
}
  1. 파일을 저장하고 텍스트 편집기를 종료합니다.
  2. javac ModuloOperatorDemo.java 명령을 사용하여 코드를 컴파일합니다.
  3. java ModuloOperatorDemo 명령을 사용하여 코드를 실행합니다.
  4. 코드는 다음을 출력해야 합니다.
The minimum number to subtract is: 2
The number after subtraction is: 289

요약

모듈로 연산자는 두 숫자의 나눗셈의 나머지를 구하는 데 사용되는 수학 연산자입니다. 이 랩에서는 모듈로 연산자의 다양한 사용 사례를 다루었습니다. 예를 들어, 숫자가 짝수인지 확인, 초를 분과 초로 변환, 개별 숫자 추출, n 번째마다 작업 반복, 숫자를 특정 범위로 제한, 그리고 숫자를 다른 숫자로 완전히 나누어 떨어지게 만드는 것 등이 있습니다. 모듈로 연산자를 사용할 때는 제수가 0 이 될 수 없다는 점을 기억하십시오. 그렇지 않으면 ArithmeticException이 발생합니다.