Autor Tema: Java ejercicio arreglo unidimensional try catch verificar tamaño array código  (Leído 2608 veces)

agata6391

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 5
    • Ver Perfil
Hola comunidad, estoy en un dilema feo. Recientemente estoy aprendiendo Java y mi profe no es muy bueno que digamos, ya que no explica estructuras ni muestra ejemplos de nada. Solo se limita según el a explicar, con su método raro decir como funciona cada etiqueta. 

Según el dejo esta tarea, la cual tengo ya 1 semana de sufrir por que no tengo ni las mas remota idea.

Consigna del ejercicio a resolver

1.Se desea crear un arreglo de una única dimensión que permita almacenar la
cantidad total de estudiantes de una clase. Por medio de la clase JOptionPane
solicite al usuario ingresar la cantidad de estudiantes que se desea tener en esa
clase y asígnela al tamaño del arreglo.

2. Se debe verificar que el tamaño del arreglo sea mayor o igual a 5 y menor o igual a
20. En caso de que se ingrese un valor fuera de esos rangos se debe mostrar un
mensaje indicando los valores esperados por el sistema. Este proceso se realizará
de forma cíclica hasta que se cumpla con lo solicitado.

3. Todas las anteriores tareas deben validar la información para evitar que la aplicación
devuelva un error o se caiga.


Hasta el momento llevo esto en código pero siento que voy mal :-[  por que el try el catch no em sale además ocupo meter un ciclo y ni las mas remota idea de como meterlo

Código: [Seleccionar]

 try {
        int valor = Integer.parseInt(JOptionPane.showInputDialog(null, "ingrese  Valor del arreglo "));

        int[] Data = new int[valor];

            if (valor<= 5){   JOptionPane.showMessageDialog(null, "El numero ingresado es:" + valor);}
            else if (valor <=20){JOptionPane.showMessageDialog(null, "El numero ingresado es:" + valor);}

        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, "Numero no puede ser menor a 5 o mayor a 20");;
        }
}
« Última modificación: 19 de Agosto 2022, 19:57 por Alex Rodríguez »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Re: Ejercicio Estudiantes
« Respuesta #1 en: 01 de Mayo 2022, 12:35 »
Hola.
Puedes usar un "multicatch", es decir, que el try tenga dos catch:
- Uno para cuando el usuario introduzca un valor que no es numérico y falle el parseInt, que producirá un NumberFormatException
- Otro, para capturar una excepción que podemos lanzar "manualmente" en el caso de que el valor introducido esté fuera de los límites entre 5 y 20.

Todo esto, podemos encerrarlo dentro de un bucle while  y usar una variable de tipo boolean que permanezca con valor false hasta que hayamos conseguido una cantidad que supere la "validación" y podamos inicializar el arreglo de estudiantes.

Esta podría ser una solución, si algo no lo entiendes o crees que no sería la solución más adecuada, indícalo y lo comentamos.
Un saludo.
Código: [Seleccionar]
public class Estudiantes {

public static void main(String[] args) {

String[] estudiantes = null;
int cantidad = 0;
boolean validado = false;

//Este bucle se repite hasta que logremos inicializar el arreglo con una cantidad válida
while (!validado) {
try {
//Pedimos cantidad de alumnos contendrá el arreglo
cantidad = Integer.parseInt(JOptionPane.showInputDialog(null, "Indique cantidad de Estudiantes:"));
//Validamos la cantidad, si está fuera de límites lanzamos excepción
if (cantidad < 5 || cantidad > 20)
throw new Exception("ERROR: Cantidad alumnos no puede ser inferior a 5 ni superior a 20");
else {
estudiantes = new String[cantidad];
validado = true; //Todo ha ido bien, esto pondrá fin al bucle while
}
}
catch(NumberFormatException nfe) {//Aquí capturamos excepción en caso de fallar el parseInt()
JOptionPane.showMessageDialog(null, "ERROR: Introduzca un valor numérico");
}
catch(Exception ex) {//Aquí capturamos cualquier excepción, principalmente la que lanzamos si cantidad está fuera de rango
JOptionPane.showMessageDialog(null, ex.getMessage());
}
}

//Bucle while terminado, ya tenemos arreglo
JOptionPane.showMessageDialog(null,
"Lista estudiantes inicializada. Cantidad de alumnos: " + estudiantes.length);

}

}
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

agata6391

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 5
    • Ver Perfil
Re: Ejercicio Estudiantes
« Respuesta #2 en: 02 de Mayo 2022, 07:42 »
De verdad te agradezco, y de verdad gracias por comentar el código así lo comprenderé mucho mejor
« Última modificación: 19 de Agosto 2022, 19:55 por Alex Rodríguez »

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".