Ejercicio 2. Pide números

Realizar un algoritmo que pida números (se pedirá por teclado la cantidad de números a introducir). El programa debe informar de cuántos números introducidos son mayores que 0, menores que 0 e iguales a 0.

Este ejercicio dispone de dos partes muy marcadas, la primera de ellas además la vamos a complicar un poco para utilizar dos bucles a lo largo de la actividad.

Petición de cantidad de números

En primer lugar debemos pedir al usuario que nos indique la cantidad de números que vamos a introducir en nuestro programa. Para que nos de un valor coherente vamos a realizar un bucle en el que comprobaremos que el número que introduzca el usuario, sea un número entero positivo.

variable int contador;

Solicitaremos previamente el valor de la variable al inicio del ejercicio, como hacemos habitualmente, con lectura mediante teclado. Posteriormente podemos incluir una estructura do-while para que compruebe si el número es entero positivo.

do {
if (contador <= 0) {
el número introducido debe ser entero positivo. ¿Cuántos números deseas que analicemos?
}
} while (contador <= 0);

Con esta estructura, realizaremos el análisis del valor recibido para el contador, si el valor introducido es correcto desde el primer momento esta estructura “no hará nada”.

Solicitud de introducción de datos

En el siguiente punto, podríamos hacerlo también con diferentes opciones, en mi caso he decidido decantarme por un bucle tipo while, aunque normalmente cuando sabemos el número determinado de veces que se repetirá la acción, solemos utilizar el bucle for, como la variable ha sido declarada previamente, personalmente me resulta más cómodo el while y su lectura mientras contador sea superior a 0 haz esto….

Está claro, que en la primera iteracción va a entrar sí o sí por las condiciones que hemos exigido en la primera parte del ejercicio.

La estructura while quedará de la siguiente manera:

while (contador > 0) {
pides que se introduzca un número
reduces el valor de contador en 1
}

Comprobación de datos

Para comprobar los datos, crearemos tres contadores, mayor, menor e igual, en cada ciclo del while anterior, debemos comprobar si el número introducido pertenece a una categoría u otra, de forma que el contador correspondiente aumente.

  • Si númeroIntroducido > 0, mayor++
  • Si númeroIntroducido < 0, menor++
  • Si númeroIntroducido = 0, igual++
package estructurasRepetitivas;

/**
02 Ejercicios Estructuras Repetitivas en Java

Programa:
Realizar un algoritmo que pida números (se pedirá por teclado la cantidad de números a
 introducir). El programa debe informar de cuantos números introducidos son mayores que
 0, menores que 0 e iguales a 0.

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

import java.util.Scanner;
// Inicio del programa y declaración de variables:
public class Ej02PideNumeros {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int numero = 0;
    int contador;
    int mayor = 0;
    int igual = 0;
    int menor = 0;

// Solicitud de datos al usuario
    System.out.println("El programa pide una cantidad de números indicada e indica cuantos son positivos, negativos o iguales a cero.");
    System.out.print("Introduce la cantidad de número que vamos a introducir: ");
    contador = scanner.nextInt();
    do {
      if (contador <= 0) {
        System.out.println("El número introducido debe ser un entero positivo. Por favor, introduce un nuevo valor.");
        contador = scanner.nextInt();
      }
    } while (contador <= 0);

    while (contador > 0){
      System.out.println("Introduce un número: ");
      numero = scanner.nextInt();
      contador = contador-1;
      if (numero > 0){
        mayor++;
      } else if (numero < 0){
        menor++;
      } else {
        igual++;
      }
    }    
    System.out.println("Has introducido todos los números:\n" + mayor + " son mayores a 0\n" + menor + " son menores a 0\n" + igual + " son iguales a 0.");
  }
}

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!