Ejercicio 4. Números pares

Escribir un programa que imprima todos los números pares entre dos números que se le pidan al usuario.

La finalidad de este ejercicio es reforzar nuestro uso de los bucles en la programación con JAVA.

Esta actividad presenta un desarrollo menos complejo que el anterior… aunque ¿lo complicamos un poco?

Petición de los dos números

Debemos pedir dos números por teclado, los cuales serán de tipo int y serán numero1 y numero2. Aunque podríamos entender que el usuario introducirá correctamente los valores, y el 1 debe ser menor que el 2… ¿pero que pasaría si no lo hiciese correctamente?

Si el numero1 es mayor que el número2, nos diría que no existen números pares entre ambos números… por eso, vamos a realizar la ordenación de los dos valores recibidos de forma que siempre compruebe el rango desde el menor hasta el mayor. ¿Cómo?

Vamos a hacerlo de la forma más simple, vamos a crear unas variables maximo y minimo y asignaremos el valor correspondiente a cada una mediante un if.

  • Si numero1 <= numero2, minimo = numero1, maximo = numero2.
  • Si numero1 > numero2, minimo = numero2, maximo = numero1.

Bucle para recorrer los valores

Para imprimir los números pares, debemos dejar claro en un principio, si los números dados por el usuario se incluyen o no, a mi entender no deben incluirse, ya que el enunciado dice entre.

De este modo, vamos a hacer uso del bucle for, donde distribuiremos las tres partes que ya conocemos del siguiente modo:

  • i (valor inicial del contador) = minimo +1.
  • condición, mientras que i < maximo.
  • incremento, i++.

Con estos datos, conseguiremos que el bucle recorra uno a uno cada uno de los valores que se encuentran entre el mínimo y el máximo (excluyendo ambos).

Condición para imprimir sólo los pares

Ya sólo nos quedaría por detallar la acción a realizar dentro del bucle for, tenemos que imprimir por pantalla el valor de i en caso de que este sea par, para lo que tenemos que realizar un if con una simple condición:

  • Si i%2 == 0. Mostrará el número en pantalla.
    Volvemos a hacer uso del operador resto (módulo) que ya vimos en lecciones anteriores, si al dividir el valor entre dos, el resto es 0, significa que el número es par y por tanto se mostrará en pantalla.

En esta ocasión la función if no tendrá else, ya que en caso de no ser par no debemos mostrar nada en pantalla.

package estructurasRepetitivas;

/**
04 Ejercicios Estructuras Repetitivas en Java

Programa:
Escribir un programa que imprima todos los números pares entre dos números
que se le pidan al usuario.

@author: manolohidalgo_
@date: 10-11-19
*/

import java.util.Scanner;
// Inicio del programa y declaración de variables:
public class Ej04NumerosPares {
  public static void main(String[] args){
    Scanner scanner = new Scanner(System.in);
    int numero1;
    int numero2;
    int minimo;
    int maximo;

    // Solicitud de datos al usuario
    System.out.println("El programa imprimirá todos los números pares entre dos números indicados.");
    System.out.print("Introduce el primer número: ");
    numero1 = scanner.nextInt();
    System.out.print("Introduce el segundo número: ");
    numero2 = scanner.nextInt();
    
    // Ordenamos los valores en mayor y menor
    if (numero1 < numero2) {
      minimo = numero1;
      maximo = numero2;
    } else {
      minimo = numero2;
      maximo = numero1;
    }
    // Realización del ciclo para hacer cálculos y mostrar en pantalla
    for (int i=minimo+1; i < maximo; i++){
      if (i%2==0){
        System.out.println(i); 
      }
    }
  }
}

Puedes acceder a este ejercicio en GitHub en este enlace

Si tienes alguna duda al respecto, alguna sugerencia o algo que no te haya quedado claro, no tienes más que escribirme en los comentarios, estoy aquí para ayudarte y aprender, ¡Nos leemos!