Tutorial 8 Java: Vectores. Parte II
¡Bienvenidos a un nuevo tutorial de Java de Geeky Theory! Esta es la parte 2 del tutorial acerca de vectores. El ejercicio será el mismo, pero en este caso, en lugar de crear un vector con un tamaño determinado por el programador, vamos a dejar que el usuario elija su tamaño, es decir, que le preguntaremos previamente el número de entradas, de nombres, quiere introducir. Además, para los bucles for, tendremos que hacer que se ejecuten los mismos bucles que longitud tiene el vector. Ya que estoy comentando esto ahora, pues lo explico. Para ver la longitud que tiene un vector, en este caso el de los nombres, utilizaremos el siguiente código: nombre.length; Es decir, que para dejar el bucle en función del número de datos que tenga el vector, haremos lo siguiente: for( int i=0; i< nombre.length; i++); Lo único que cambiará el código respecto al del tutorial anterior, es que, como ya he dicho, en este caso, pediremos al usuario el número de nombres que desea introducir. Como ya hemos hecho anteriormente, utilizaremos la clase Scanner. Lo que haremos, será modificar un poco el código del tutorial anterior, que era el siguiente: package vectores; import java.util.Scanner; /** * * @author Mario * Tutorial 6 Java: Vectores * */ public class Vectores { private Scanner reader; private String[] nombre; private int[] edad; public void cargar_nombres() { reader=new Scanner(System.in); nombre=new String[3]; for(int i=0; i<3;i++){ System.out.print("Introduzca el nombre "+(i+1)+": "); nombre[i]=reader.next(); } System.out.println(""); } public void cargar_edades(){ reader=new Scanner(System.in); edad=new int[3]; for(int i=0; i<3;i++){ System.out.print("Introduzca la edad de "+nombre[i]+": "); edad[i]=reader.nextInt(); } System.out.println(""); } public void mostrar_datos(){ System.out.println("DATOS INTRODUCIDOS:"); for(int i=0; i System.out.println(nombre[i]+": "+edad[i]+" años."); } } public static void main(String[] args) { Vectores datos=new Vectores(); datos.cargar_nombres(); datos.cargar_edades(); datos.mostrar_datos(); } } Tras declarar el vector edad, declararemos un entero que será el número de nombres que se introducirán. También crearemos un método para introducirlos, que se llamará introducir_numero_nombres(): private int numero; public void introducir_numero_datos(){ reader=new Scanner(System.in); System.out.print("Introduzca el número de nombres: "); numero=reader.nextInt(); System.out.println(""); } Ahora, donde ponga un número 3, es decir, el número asignado por el programador, pondremos la variable numero, es decir, lo que ha introducido el usuario por teclado: public void cargar_nombres() { reader=new Scanner(System.in); nombre=new String[numero]; for(int i=0; i<numero; i++){ System.out.print("Introduzca el nombre "+(i+1)+": "); nombre[i]=reader.next(); } System.out.println(""); } public void cargar_edades(){ reader=new Scanner(System.in); edad=new int[numero]; for(int i=0; i<numero; i++){ System.out.print("Introduzca la edad de "+nombre[i]+": "); edad[i]=reader.nextInt(); } System.out.println(""); } public void mostrar_datos(){ System.out.println("DATOS INTRODUCIDOS:"); for(int i=0; i<numero; i++){ System.out.println(nombre[i]+": "+edad[i]+" años."); } } Finalmente, dentro del main escribiremos el código a ejecutar: public static void main(String[] args) { Vectores datos=new Vectores(); datos.introducir_numero_datos(); datos.cargar_nombres(); datos.cargar_edades(); datos.mostrar_datos(); } Creo que no requiere explicación, ya que se vió en el tutorial anterior, aunque si hay alguna duda, no dudéis en dejar un comentario. Finalmente, el código completo es: package vectores; import java.util.Scanner; /** * * @author Mario * Tutorial 6 Java: Vectores * */ public class Vectores { private Scanner reader; private String[] nombre; private int[] edad; private int numero; public void introducir_numero_datos(){ reader=new Scanner(System.in); System.out.print("Introduzca el número de nombres: "); numero=reader.nextInt(); System.out.println(""); } public void cargar_nombres() { reader=new Scanner(System.in); nombre=new String[numero]; for(int i=0; i<numero; i++){ System.out.print("Introduzca el nombre "+(i+1)+": "); nombre[i]=reader.next(); } System.out.println(""); } public void cargar_edades(){ reader=new Scanner(System.in); edad=new int[numero]; for(int i=0; i<numero; i++){ System.out.print("Introduzca la edad de "+nombre[i]+": "); edad[i]=reader.nextInt(); } System.out.println(""); } public void mostrar_datos(){ System.out.println("DATOS INTRODUCIDOS:"); for(int i=0; i<numero; i++){ System.out.println(nombre[i]+": "+edad[i]+" años."); } } public static void main(String[] args) { Vectores datos=new Vectores(); datos.introducir_numero_datos(); datos.cargar_nombres(); datos.cargar_edades(); datos.mostrar_datos(); } } Si ejecutamos el programa, obtenemos lo siguiente:
Esto es todo por hoy. Nos vemos en el siguiente tutorial. ¡Esto cada vez se pone más interesante!