Java 에서 숫자가 짝수인지 확인하는 방법

JavaBeginner
지금 연습하기

소개

이 랩에서는 Java 에서 숫자가 짝수인지 홀수인지 판별하는 방법을 배우게 됩니다. 짝수를 식별하는 기본 원리인, 숫자를 2 로 나눌 때 나머지를 확인하기 위해 모듈로 연산자 (%) 를 사용하는 방법을 살펴봅니다.

이 검사를 수행하는 간단한 Java 프로그램을 구현하고, 양수 및 음수 정수 입력으로 테스트하며, 솔루션을 더욱 강력하게 만들기 위해 비정수 입력을 처리하는 방법을 고려할 것입니다.

짝수 확인을 위한 모듈로 연산자 사용

이 단계에서는 모듈로 연산자를 사용하여 Java 에서 숫자가 짝수인지 홀수인지 판별하는 방법을 배우겠습니다. 모듈로 연산자 (%) 는 나눗셈의 나머지를 제공합니다. 예를 들어, 10 % 3은 1 입니다. 왜냐하면 10 을 3 으로 나누면 몫은 3 이고 나머지는 1 이기 때문입니다.

짝수는 나머지가 없이 2 로 나눌 수 있는 모든 정수입니다. 즉, 짝수를 2 로 나누면 나머지는 항상 0 입니다. 이 조건을 확인하기 위해 모듈로 연산자를 사용할 수 있습니다.

숫자가 짝수인지 확인하는 간단한 Java 프로그램을 만들어 보겠습니다.

  1. WebIDE 편집기에서 EvenCheck.java 파일을 엽니다. 파일이 존재하지 않으면 왼쪽의 파일 탐색기에서 마우스 오른쪽 버튼을 클릭하고 "새 파일"을 선택한 다음 EvenCheck.java를 입력하여 ~/project 디렉토리에 만듭니다.

  2. 다음 코드를 EvenCheck.java 파일에 추가합니다.

    public class EvenCheck {
        public static void main(String[] args) {
            int number = 10; // 이 숫자가 짝수인지 확인합니다.
    
            // 모듈로 연산자를 사용하여 2 로 나눌 때 나머지를 확인합니다.
            if (number % 2 == 0) {
                System.out.println(number + " is an even number.");
            } else {
                System.out.println(number + " is an odd number.");
            }
        }
    }

    새로운 부분을 살펴보겠습니다.

    • int number = 10;: number라는 정수 변수를 선언하고 값 10 을 할당합니다. 이 값을 변경하여 다른 숫자를 테스트할 수 있습니다.
    • if (number % 2 == 0): 이것은 if 문입니다. 괄호 안의 조건이 참인지 확인합니다. 조건 number % 2 == 0number를 2 로 나눈 나머지가 0 과 같은지 확인합니다.
    • System.out.println(number + " is an even number.");: 이 줄은 if 문의 조건이 참일 경우 (숫자가 짝수인 경우) 실행됩니다.
    • else: 이 키워드는 if 문의 조건이 거짓일 경우 (숫자가 홀수인 경우) 실행될 코드 블록을 소개합니다.
    • System.out.println(number + " is an odd number.");: 이 줄은 숫자가 홀수인 경우 실행됩니다.
  3. EvenCheck.java 파일을 저장합니다 (Ctrl+S 또는 Cmd+S).

  4. 이제 프로그램을 컴파일합니다. WebIDE 하단의 터미널을 열고 ~/project 디렉토리에 있는지 확인합니다. 그런 다음 다음 명령을 실행합니다.

    javac EvenCheck.java

    오류가 없으면 EvenCheck.class 파일이 생성됩니다.

  5. 마지막으로, 컴파일된 프로그램을 실행합니다.

    java EvenCheck

    숫자 10 이 짝수인지 홀수인지 나타내는 출력을 볼 수 있습니다.

    10 is an even number.

이제 EvenCheck.java 파일에서 number 변수의 값을 다른 정수 (예: 7, -5, 0) 로 변경하고 3, 4, 5 단계를 반복하여 출력이 어떻게 변경되는지 확인하십시오.

양수 및 음수 숫자 테스트

이전 단계에서 양의 정수가 짝수인지 홀수인지 성공적으로 확인했습니다. 이제 모듈로 연산자가 음수와 0 에서 어떻게 작동하는지 살펴보겠습니다. 짝수와 홀수의 개념은 음수와 0 을 포함한 모든 정수에 적용됩니다.

정수는 2 로 나누어 떨어지면 짝수입니다. 즉, 나머지가 0 입니다. 이 정의는 음수에도 적용됩니다. 예를 들어, -4 를 2 로 나누면 -2 이고 나머지가 0 이므로 -4 는 짝수입니다. -3 을 2 로 나누면 -1 이고 나머지가 -1(또는 1, 음수에 대한 모듈로의 정의에 따라 다르지만 핵심은 0 이 아니라는 것입니다) 이므로 -3 은 홀수입니다. 0 을 2 로 나누면 0 이고 나머지가 0 이므로 0 도 짝수로 간주됩니다.

EvenCheck.java 프로그램을 수정하여 다양한 양수 및 음수, 그리고 0 으로 테스트해 보겠습니다.

  1. WebIDE 편집기에서 EvenCheck.java 파일을 엽니다.

  2. main 메서드를 수정하여 여러 다른 숫자를 테스트합니다. number 변수의 값을 여러 번 변경하거나, 여러 if-else 블록을 추가하여 다른 숫자를 순차적으로 확인할 수 있습니다. 간단하게, number의 값을 변경하고 각 테스트 케이스에 대해 프로그램을 다시 실행해 보겠습니다.

    먼저 양의 홀수로 테스트해 보겠습니다. int number = 10; 줄을 다음으로 변경합니다.

    int number = 7; // 양의 홀수로 테스트
  3. 파일을 저장합니다.

  4. 터미널에서 수정된 프로그램을 컴파일합니다.

    javac EvenCheck.java
  5. 프로그램을 실행합니다.

    java EvenCheck

    다음 출력을 볼 수 있습니다.

    7 is an odd number.
  6. 이제 음의 짝수로 테스트해 보겠습니다. int number = 7; 줄을 다음으로 변경합니다.

    int number = -4; // 음의 짝수로 테스트
  7. 파일을 저장합니다.

  8. 프로그램을 컴파일합니다.

    javac EvenCheck.java
  9. 프로그램을 실행합니다.

    java EvenCheck

    다음 출력을 볼 수 있습니다.

    -4 is an even number.
  10. 다음으로 음의 홀수로 테스트합니다. int number = -4; 줄을 다음으로 변경합니다.

    int number = -3; // 음의 홀수로 테스트
  11. 파일을 저장합니다.

  12. 프로그램을 컴파일합니다.

    javac EvenCheck.java
  13. 프로그램을 실행합니다.

    java EvenCheck

    다음 출력을 볼 수 있습니다.

    -3 is an odd number.
  14. 마지막으로 0 으로 테스트합니다. int number = -3; 줄을 다음으로 변경합니다.

    int number = 0; // 0으로 테스트
  15. 파일을 저장합니다.

  16. 프로그램을 컴파일합니다.

    javac EvenCheck.java
  17. 프로그램을 실행합니다.

    java EvenCheck

    다음 출력을 볼 수 있습니다.

    0 is an even number.

보시다시피, 모듈로 연산자는 양수, 음수 및 0 값에 대해 짝수와 홀수를 올바르게 식별합니다. 로직 number % 2 == 0은 모든 정수에 대해 짝수 여부를 확인하는 신뢰할 수 있는 방법입니다.

정수가 아닌 입력 처리

이전 단계에서 모듈로 연산자를 사용하여 정수가 짝수인지 홀수인지 성공적으로 확인했습니다. 그러나 사용자가 소수 또는 텍스트와 같이 정수가 아닌 것을 입력하려고 하면 어떻게 될까요? 현재 프로그램은 정수 (int) 로 작동하도록 설계되었으며, 정수가 아닌 입력을 제공하면 오류가 발생합니다.

이 단계에서는 사용자로부터 입력을 받아 입력이 유효한 정수가 아닌 경우를 처리하도록 프로그램을 수정합니다. "첫 번째 Java Lab"에서 간략하게 살펴본 Scanner 클래스를 사용하여 사용자 입력을 읽습니다.

  1. WebIDE 편집기에서 EvenCheck.java 파일을 엽니다.

  2. 파일의 전체 내용을 다음 코드로 바꿉니다.

    import java.util.Scanner;
    import java.util.InputMismatchException;
    
    public class EvenCheck {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
    
            System.out.print("Enter an integer: ");
    
            try {
                int number = scanner.nextInt(); // 사용자로부터 정수 입력 읽기
    
                // 모듈로 연산자를 사용하여 2 로 나눌 때 나머지를 확인합니다.
                if (number % 2 == 0) {
                    System.out.println(number + " is an even number.");
                } else {
                    System.out.println(number + " is an odd number.");
                }
    
            } catch (InputMismatchException e) {
                System.out.println("Invalid input. Please enter an integer.");
            } finally {
                scanner.close(); // 스캐너 닫기
            }
        }
    }

    변경 사항을 살펴보겠습니다.

    • import java.util.Scanner;: 입력을 읽기 위해 Scanner 클래스를 가져옵니다.
    • import java.util.InputMismatchException;: 입력이 예상된 유형과 일치하지 않을 때 발생하는 예외 클래스를 가져옵니다.
    • Scanner scanner = new Scanner(System.in);: 콘솔에서 입력을 읽기 위해 Scanner 객체를 생성합니다.
    • System.out.print("Enter an integer: ");: 사용자에게 숫자를 입력하라는 메시지를 표시합니다.
    • try { ... } catch (InputMismatchException e) { ... }: 이것은 오류 처리에 사용되는 try-catch 블록입니다. try 블록 내부의 코드가 실행됩니다. InputMismatchException이 발생하면 (입력이 정수가 아님을 의미) catch 블록 내부의 코드가 실행됩니다.
    • int number = scanner.nextInt();: 이 줄은 사용자 입력에서 정수를 읽으려고 시도합니다. 사용자가 정수로 해석할 수 없는 것을 입력하면 InputMismatchException이 발생합니다.
    • System.out.println("Invalid input. Please enter an integer.");: InputMismatchException이 catch 되면 이 메시지가 인쇄됩니다.
    • finally { scanner.close(); }: finally 블록 내부의 코드는 예외가 발생했는지 여부에 관계없이 항상 실행됩니다. 여기서는 Scanner 리소스를 닫는 데 사용됩니다.
  3. 파일을 저장합니다.

  4. 터미널에서 수정된 프로그램을 컴파일합니다.

    javac EvenCheck.java
  5. 프로그램을 실행합니다.

    java EvenCheck
  6. 메시지가 표시되면 정수 (예: 15) 를 입력하고 Enter 키를 누릅니다. 프로그램은 짝수인지 홀수인지 올바르게 식별해야 합니다.

    Enter an integer: 15
    15 is an odd number.
  7. 프로그램을 다시 실행합니다.

    java EvenCheck
  8. 이번에는 메시지가 표시되면 정수가 아닌 값 (예: hello 또는 3.14) 을 입력하고 Enter 키를 누릅니다. 이제 프로그램은 잘못된 입력을 적절하게 처리해야 합니다.

    Enter an integer: hello
    Invalid input. Please enter an integer.

try-catch 블록을 추가함으로써 이제 프로그램이 더 강력해졌으며 사용자가 예상된 형식과 일치하지 않는 입력을 제공하는 경우를 처리할 수 있습니다. 이것은 사용자 친화적인 프로그램을 작성하는 중요한 측면입니다.

요약

이 Lab 에서는 모듈로 연산자 (%) 를 사용하여 Java 에서 숫자가 짝수인지 확인하는 방법을 배웠습니다. 짝수는 2 로 나눌 때 나머지가 0 임을 알게 되었습니다. if-else 문을 사용하여 이 검사를 수행하고 주어진 정수가 짝수인지 홀수인지 출력하는 간단한 Java 프로그램을 구현했습니다.

또한 모듈로 연산자가 서로 다른 부호에 대해 예상대로 작동하는지 확인하기 위해 양수 및 음수 정수 입력으로 짝수 검사를 테스트하는 방법을 살펴보았습니다. 마지막으로, 정수가 아닌 입력을 처리하는 방법을 고려하여 모듈로 연산자가 일반적으로 정수 유형과 함께 사용된다는 것을 이해하고, 입력 유형을 검증하거나 보다 강력한 애플리케이션에서 예외를 처리하기 위한 잠재적인 접근 방식을 논의했습니다.