Cómo verificar si un número es par en Java

JavaJavaBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo determinar si un número es par o impar en Java. Exploraremos el uso del operador módulo (%) para verificar el residuo cuando un número se divide entre 2, que es el principio fundamental para identificar números pares.

Implementarás un sencillo programa en Java para realizar esta comprobación, lo probarás con entradas de enteros positivos y negativos, y considerarás cómo manejar entradas no enteras para hacer tu solución más robusta.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/BasicSyntaxGroup -.-> java/data_types("Data Types") java/BasicSyntaxGroup -.-> java/operators("Operators") java/BasicSyntaxGroup -.-> java/if_else("If...Else") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/user_input("User Input") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/exceptions("Exceptions") subgraph Lab Skills java/data_types -.-> lab-559962{{"Cómo verificar si un número es par en Java"}} java/operators -.-> lab-559962{{"Cómo verificar si un número es par en Java"}} java/if_else -.-> lab-559962{{"Cómo verificar si un número es par en Java"}} java/user_input -.-> lab-559962{{"Cómo verificar si un número es par en Java"}} java/exceptions -.-> lab-559962{{"Cómo verificar si un número es par en Java"}} end

Usar el Operador Módulo para Verificar Números Pares

En este paso, aprenderemos cómo determinar si un número es par o impar en Java utilizando el operador módulo. El operador módulo (%) te da el residuo de una división. Por ejemplo, 10 % 3 es 1 porque 10 dividido entre 3 es 3 con un residuo de 1.

Un número par es cualquier entero que se puede dividir entre 2 sin dejar residuo. Esto significa que si divides un número par entre 2, el residuo siempre es 0. Podemos usar el operador módulo para verificar esta condición.

Vamos a crear un sencillo programa en Java para verificar si un número es par.

  1. Abre el archivo EvenCheck.java en el editor WebIDE. Si el archivo no existe, créalo en el directorio ~/project. Puedes hacer esto haciendo clic derecho en el Explorador de Archivos de la izquierda, seleccionando "Nuevo Archivo" y escribiendo EvenCheck.java.

  2. Agrega el siguiente código al archivo EvenCheck.java:

    public class EvenCheck {
        public static void main(String[] args) {
            int number = 10; // Verificaremos si este número es par
    
            // Usar el operador módulo para verificar el residuo al dividir entre 2
            if (number % 2 == 0) {
                System.out.println(number + " is an even number.");
            } else {
                System.out.println(number + " is an odd number.");
            }
        }
    }

    Veamos las partes nuevas:

    • int number = 10;: Esto declara una variable entera llamada number y le asigna el valor 10. Podemos cambiar este valor para probar diferentes números.
    • if (number % 2 == 0): Esta es una declaración if. Verifica si la condición dentro de los paréntesis es verdadera. La condición number % 2 == 0 verifica si el residuo de number dividido entre 2 es igual a 0.
    • System.out.println(number + " is an even number.");: Esta línea se ejecuta si la condición en la declaración if es verdadera (el número es par).
    • else: Esta palabra clave introduce el bloque de código que se ejecutará si la condición en la declaración if es falsa (el número es impar).
    • System.out.println(number + " is an odd number.");: Esta línea se ejecuta si el número es impar.
  3. Guarda el archivo EvenCheck.java (Ctrl+S o Cmd+S).

  4. Ahora, compila el programa. Abre la Terminal en la parte inferior del WebIDE y asegúrate de estar en el directorio ~/project. Luego, ejecuta el siguiente comando:

    javac EvenCheck.java

    Si no hay errores, se creará un archivo EvenCheck.class.

  5. Finalmente, ejecuta el programa compilado:

    java EvenCheck

    Deberías ver la salida que indica si el número 10 es par o impar.

    10 is an even number.

Ahora, intenta cambiar el valor de la variable number en el archivo EvenCheck.java a un entero diferente (por ejemplo, 7, -5, 0) y repite los pasos 3, 4 y 5 para ver cómo cambia la salida.

Probar con Números Positivos y Negativos

En el paso anterior, verificamos con éxito si un entero positivo es par o impar. Ahora, exploremos cómo funciona el operador módulo con números negativos y cero. El concepto de par e impar se aplica a todos los enteros, incluyendo los negativos y el cero.

Un entero es par si es divisible entre 2, lo que significa que el residuo es 0. Esta definición también es válida para los números negativos. Por ejemplo, -4 es par porque -4 dividido entre 2 es -2 con un residuo de 0. -3 es impar porque -3 dividido entre 2 es -1 con un residuo de -1 (o 1, dependiendo de la definición de módulo para números negativos, pero lo importante es que no es 0). El cero también se considera un número par porque 0 dividido entre 2 es 0 con un residuo de 0.

Modifiquemos nuestro programa EvenCheck.java para probar con diferentes números positivos y negativos, así como con cero.

  1. Abre el archivo EvenCheck.java en el editor WebIDE.

  2. Modifica el método main para probar varios números diferentes. Puedes cambiar el valor de la variable number varias veces, o puedes agregar más bloques if-else para verificar diferentes números secuencialmente. Para simplificar, cambiemos el valor de number y volvamos a ejecutar el programa para cada caso de prueba.

Primero, probemos con un número impar positivo. Cambia la línea int number = 10; a:

int number = 7; // Test with a positive odd number
  1. Guarda el archivo.

  2. Compila el programa modificado en la Terminal:

javac EvenCheck.java
  1. Ejecuta el programa:
java EvenCheck

Deberías ver la salida:

7 is an odd number.
  1. Ahora, probemos con un número par negativo. Cambia la línea int number = 7; a:
int number = -4; // Test with a negative even number
  1. Guarda el archivo.

  2. Compila el programa:

javac EvenCheck.java
  1. Ejecuta el programa:
java EvenCheck

Deberías ver la salida:

-4 is an even number.
  1. A continuación, prueba con un número impar negativo. Cambia la línea int number = -4; a:
int number = -3; // Test with a negative odd number
  1. Guarda el archivo.

  2. Compila el programa:

javac EvenCheck.java
  1. Ejecuta el programa:
java EvenCheck

Deberías ver la salida:

-3 is an odd number.
  1. Finalmente, prueba con cero. Cambia la línea int number = -3; a:
int number = 0; // Test with zero
  1. Guarda el archivo.

  2. Compila el programa:

javac EvenCheck.java
  1. Ejecuta el programa:
java EvenCheck

Deberías ver la salida:

0 is an even number.

Como puedes ver, el operador módulo identifica correctamente los números pares e impares para valores positivos, negativos y cero. La lógica number % 2 == 0 es una forma confiable de verificar si un número es par para cualquier entero.

Manejar Entradas No Enteras

En los pasos anteriores, hemos utilizado con éxito el operador módulo para verificar si los números enteros son pares o impares. Sin embargo, ¿qué sucede si el usuario intenta ingresar algo que no es un entero, como un número decimal o texto? Nuestro programa actual está diseñado para trabajar con enteros (int), y proporcionar una entrada no entera causará un error.

En este paso, modificaremos nuestro programa para tomar la entrada del usuario y manejar los casos en los que la entrada no es un entero válido. Utilizaremos la clase Scanner, que vimos brevemente en "Your First Java Lab" (Tu primer laboratorio de Java), para leer la entrada del usuario.

  1. Abre el archivo EvenCheck.java en el editor WebIDE.

  2. Reemplaza todo el contenido del archivo con el siguiente código:

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(); // Read integer input from the user

            // Use the modulo operator to check for a remainder when divided by 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(); // Close the scanner
        }
    }
}

Veamos los cambios:

  • import java.util.Scanner;: Importa la clase Scanner para leer la entrada.
  • import java.util.InputMismatchException;: Importa la clase de excepción que se lanza cuando la entrada no coincide con el tipo esperado.
  • Scanner scanner = new Scanner(System.in);: Crea un objeto Scanner para leer la entrada desde la consola.
  • System.out.print("Enter an integer: ");: Pide al usuario que ingrese un número.
  • try { ... } catch (InputMismatchException e) { ... }: Este es un bloque try-catch, que se utiliza para el manejo de errores. El código dentro del bloque try se ejecuta. Si se produce una InputMismatchException (lo que significa que la entrada no es un entero), se ejecuta el código dentro del bloque catch.
  • int number = scanner.nextInt();: Esta línea intenta leer un entero de la entrada del usuario. Si el usuario ingresa algo que no se puede interpretar como un entero, se lanza una InputMismatchException.
  • System.out.println("Invalid input. Please enter an integer.");: Este mensaje se imprime si se captura una InputMismatchException.
  • finally { scanner.close(); }: El código dentro del bloque finally siempre se ejecuta, independientemente de si se produjo una excepción o no. Se utiliza aquí para cerrar el recurso Scanner.
  1. Guarda el archivo.

  2. Compila el programa modificado en la Terminal:

javac EvenCheck.java
  1. Ejecuta el programa:
java EvenCheck
  1. Cuando se te solicite, ingresa un entero (por ejemplo, 15) y presiona Enter. El programa debería identificar correctamente si es par o impar.
Enter an integer: 15
15 is an odd number.
  1. Ejecuta el programa de nuevo:
java EvenCheck
  1. Esta vez, cuando se te solicite, ingresa un valor no entero (por ejemplo, hello o 3.14) y presiona Enter. El programa ahora debería manejar la entrada no válida de manera adecuada.
Enter an integer: hello
Invalid input. Please enter an integer.

Al agregar el bloque try-catch, nuestro programa es ahora más robusto y puede manejar casos en los que el usuario proporciona una entrada que no está en el formato esperado. Esto es un aspecto importante de la escritura de programas amigables con el usuario.

Resumen

En este laboratorio, aprendimos cómo verificar si un número es par en Java utilizando el operador módulo (%). Descubrimos que un número par tiene un residuo de 0 cuando se divide entre 2. Implementamos un sencillo programa en Java utilizando una declaración if-else para realizar esta comprobación e imprimir si un entero dado es par o impar.

Exploramos además la prueba de la comprobación de paridad con entradas de enteros positivos y negativos para asegurarnos de que el operador módulo se comporte como se espera para diferentes signos. Finalmente, consideramos cómo manejar entradas no enteras, entendiendo que el operador módulo se utiliza típicamente con tipos enteros y discutiendo enfoques potenciales para validar los tipos de entrada o manejar excepciones en una aplicación más robusta.