Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: agata6391 en 01 de Mayo 2022, 02:00

Título: Java ejercicio arreglo unidimensional try catch verificar tamaño array código
Publicado por: agata6391 en 01 de Mayo 2022, 02:00
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");;
        }
}
Título: Re: Ejercicio Estudiantes
Publicado por: Kabuto 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);

}

}
Título: Re: Ejercicio Estudiantes
Publicado por: agata6391 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