Control Flow

Java Program to Check Even or Odd Number

Learn to check if a number is even or odd in Java using modulus operator. Complete program with examples and explanations of different approaches.

Problem Description

Write a Java program to check whether a given number is Even or Odd.

  • Even Number: A number perfectly divisible by 2 (remainder is 0). Examples: 2, 4, 6, 8, 10.
  • Odd Number: A number not divisible by 2 (remainder is 1). Examples: 1, 3, 5, 7, 9.

Code

CheckEvenOdd.java
import java.util.Scanner;

public class CheckEvenOdd {
    public static void main(String[] args) {
        int num;
        System.out.print("Enter an Integer number: ");

        // The input provided by user is stored in num
        Scanner input = new Scanner(System.in);
        num = input.nextInt();

        /* If number is divisible by 2 then it's an even number
         * else odd number */
        if (num % 2 == 0) {
            System.out.println(num + " is an even number");
        } else {
            System.out.println(num + " is an odd number");
        }
        
        input.close();
    }
}

Output

Case 1:

Enter an Integer number: 78
78 is an even number

Case 2:

Enter an Integer number: 77
77 is an odd number

Explanation

  1. Scanner: Used to take input from the user.
  2. % (Modulus Operator): This operator returns the remainder of a division.
    • num % 2 divides num by 2.
    • If the remainder is 0, the number is even.
    • If the remainder is 1 (or -1 for negative odd numbers), the number is odd.
  3. if-else: Checks the condition. If true, prints "Even"; otherwise, prints "Odd".

Try Yourself

  1. Zero Check: Run the program with 0. Is it even or odd?
  2. Negative Numbers: Try -4 and -5. Does the logic hold?
  3. Ternary Operator: Can you rewrite the if-else block using a single line? String result = (num % 2 == 0) ? "Even" : "Odd";
  4. Bitwise Challenge: Try checking for odd/even using the bitwise AND operator (&). Hint: (num & 1) == 0 means even.
  5. Looping: Modify the program to check numbers from 1 to 10 automatically.