본문 바로가기
기타/백엔드 기초

자바 Java | 나머지 연산자 %: 음수 계산 규칙, 예외 처리 방법

by YUNI Heo 2023. 2. 15.
반응형

 

✅ 나머지 연산자 %

두 개의 피연산자를 받아 첫 번째 피연산자를 두 번째 피연산자로 나눈 나머지 값을 반환한다. 

  • 모든 기본형 숫자 타입(int, long, float, double, short, byte)에서 % 연산자를 지원한다.
int remainder = dividend % divisor;
int dividend = 7;
int divisor = 3;
int remainder = dividend % divisor; // remainder는 1이다.

  • 조건문에서 홀수와 짝수를 구분하는 데 사용한다.
int input = 5;
if (input % 2 == 0) {
    System.out.println("짝수입니다.");
} else {
    System.out.println("홀수입니다.");
}

  • 어떤 수가 다른 수의 배수인지를 판별하는 데 사용한다.
int number = 12;
if (number % 3 == 0) {
    System.out.println("3의 배수입니다.");
} else {
    System.out.println("3의 배수가 아닙니다.");
}

 

💡 나머지 연산에서 음수 계산 규칙

음수의 나머지 연산은 양수의 나머지 연산과 다르다.

  • 양수의 나머지 연산에서는 나머지가 항상 양수이다.
  • 음수의 나머지 연산에서는 나머지 부호가 양수 또는 음수가 될 수 있다.

두 번째 피연산자의 부호는 무시하고, 첫 번째 피연산자 부호만을 따른다.

  • 나누는 수와 나머지를 구할 수를 모두 양수로 바꾼다.
  • 일반적인 나머지 연산을 수행한 후, 첫 번째 피연산자 부호를 따른다.

즉, 왼쪽 피연산자가 양수이면 결과도 양수가 되고, 왼쪽 피연산자가 음수이면 결과도 음수가 된다.

public class Ex3_13 {
    public static void main(String[] args) {
        System.out.println(-10 % 8); // -2
        System.out.println(10 % -8); // 2
        System.out.println(-10 % -8); // -2
    }
}

 

💡 예외 처리

나누는 수가 0인 경우에 대한 예외 처리가 필요하다.

  • 컴퓨터에서는 0으로 나누는 연산을 수행할 수 없기 때문에 ArithmeticException 예외가 발생가 발생하여 프로그램이 비정상적으로 종료된다.
  • 자바에서는 try-catch 문을 사용하여 예외 처리를 수행한다.
try {
    // 나누는 수가 0일 때 발생하는 예외 처리
    int a = 10;
    int b = 0;
    int c = a / b;
} catch (ArithmeticException e) {
    // 예외가 발생하면 실행될 코드
    System.out.println("0으로 나누는 것은 불가능합니다.");
    e.printStackTrace();
}
반응형