소개
모듈로 연산자 (Modulo operator) 는 두 숫자의 나눗셈에서 나머지를 구하는 데 사용되는 수학 연산자입니다. 이 연산자는 기호 %로 표시됩니다. Java 에서 모듈로 연산자는 첫 번째 숫자를 두 번째 숫자로 나눈 나머지를 반환합니다. 이 Lab 에서는 이 연산자의 몇 가지 사용 사례를 안내합니다.
모듈로 연산자 예시
이 단계에서는 모듈로 연산자의 기본 구문과 정수 및 부동 소수점 변수에 어떻게 사용될 수 있는지 살펴보겠습니다. 또한 음수를 어떻게 처리하는지도 살펴보겠습니다.
touch명령을 사용하여ModuloOperatorDemo.java라는 새 파일을 생성합니다.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 발생
이 단계에서는 제수가 0 일 경우 모듈로 연산자가 어떻게 예외를 발생시키는지 살펴보겠습니다.
- 텍스트 편집기에서
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 + " is even.");
else
System.out.println(num + " is NOT even.");
}
}
}
- 파일을 저장하고 텍스트 편집기를 종료합니다.
javac ModuloOperatorDemo.java명령을 사용하여 코드를 컴파일합니다.java ModuloOperatorDemo명령을 사용하여 코드를 실행합니다.- 코드는 다음을 출력해야 합니다.
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.
초를 분과 초로 변환
이 단계에서는 모듈로 연산자를 사용하여 초를 분과 초로 변환하는 방법을 살펴보겠습니다.
- 텍스트 편집기에서
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 + " seconds is equal to " + minutes +" minutes " + remainingSeconds + " seconds");
}
}
- 파일을 저장하고 텍스트 편집기를 종료합니다.
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("Do Something");
}
}
}
- 파일을 저장하고 텍스트 편집기를 종료합니다.
javac ModuloOperatorDemo.java명령을 사용하여 코드를 컴파일합니다.java ModuloOperatorDemo명령을 사용하여 코드를 실행합니다.- 코드는 다음을 출력해야 합니다.
Do Something
Do Something
Do Something
Do Something
Do Something
Do Something
숫자를 특정 범위로 제한하기
이 단계에서는 모듈로 연산자를 사용하여 숫자를 특정 범위로 제한하는 방법을 살펴보겠습니다.
- 텍스트 편집기에서
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 + " occurs on " + dayName1);
System.out.println(dayOfTheMonth2 + " occurs on " + 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("The minimum number to subtract is: " + remainder);
System.out.println("The number after subtraction is: " + X);
}
}
- 파일을 저장하고 텍스트 편집기를 종료합니다.
javac ModuloOperatorDemo.java명령을 사용하여 코드를 컴파일합니다.java ModuloOperatorDemo명령을 사용하여 코드를 실행합니다.- 코드는 다음을 출력해야 합니다.
The minimum number to subtract is: 2
The number after subtraction is: 289
요약
모듈로 연산자는 두 숫자의 나눗셈의 나머지를 구하는 데 사용되는 수학 연산자입니다. 이 랩에서는 모듈로 연산자의 다양한 사용 사례를 다루었습니다. 예를 들어, 숫자가 짝수인지 확인, 초를 분과 초로 변환, 개별 숫자 추출, n 번째마다 작업 반복, 숫자를 특정 범위로 제한, 그리고 숫자를 다른 숫자로 완전히 나누어 떨어지게 만드는 것 등이 있습니다. 모듈로 연산자를 사용할 때는 제수가 0 이 될 수 없다는 점을 기억하십시오. 그렇지 않으면 ArithmeticException이 발생합니다.



