Java - Ayuda no entiendo que hace la parte en negrita de este programa....

 
Vista:
Imágen de perfil de Ivan
Val: 20
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Ayuda no entiendo que hace la parte en negrita de este programa....

Publicado por Ivan (11 intervenciones) el 09/09/2019 20:04:18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public static void main(String[] args) {
        String[] nombres = new String[10];
        Scanner sc = new Scanner(System.in);
 
        int contador = 0;
        String nombre;
        do {
            System.out.println("Dime un nombre");
            nombre = sc.nextLine();
            if (!nombre.equals(""))//Si no pulsa enter vacio
            {
                nombres[contador] = nombre;
            }
            contador++;
        } while (!nombre.equals("") && contador < nombres.length); //Mientras no pulse enter y sea menor a la longitud del array
 
        for (int i = 0; i < nombres.length; i++) {
            if (nombres[i] != null) {
                System.out.println(nombres[i]);
            }
        }
    }
 
}

Captura
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda no entiendo que hace la parte en negrita de este programa....

Publicado por Billy Joel (876 intervenciones) el 10/09/2019 00:28:34
Lo que tienes en negrita es la asignación del nombre leido al arreglo de nombres.
He visto tu código y lo he corregido así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public static void main(String[] args) {
    int CANTIDAD_NOMBRES = 100;
    String[] nombres = new String[CANTIDAD_NOMBRES];
    Scanner sc = new Scanner(System.in);
 
    int contador = 0;
    String nombre;
    do {
        System.out.print("Dime un nombre: ");
        nombre = sc.nextLine();
        if (!nombre.equals("")) {//Si no pulsa enter vacio
            nombres[contador] = nombre;
        } else {
            break;
        }
        contador++;
    } while (!nombre.equals("") && contador < nombres.length); //Mientras no pulse enter y sea menor a la longitud del array
 
    System.out.println("A continuación los nombres: ");
    for (int i = 0; i < contador; i++) {
        System.out.println((i + 1) + ": " + nombres[i]);
    }
}

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ivan
Val: 20
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Ayuda no entiendo que hace la parte en negrita de este programa....

Publicado por Ivan (11 intervenciones) el 10/09/2019 00:32:48
Sigo sin comprender la función del contador dentro de []
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda no entiendo que hace la parte en negrita de este programa....

Publicado por Billy Joel (876 intervenciones) el 10/09/2019 01:15:28
Mira ejecutalo así y lo entenderas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public static void main(String[] args) {
    int CANTIDAD_NOMBRES = 100;
    String[] nombres = new String[CANTIDAD_NOMBRES];
    Scanner sc = new Scanner(System.in);
 
    int contador = 0;
    String nombre;
    do {
        System.out.print("Dime un nombre en la posicion [" + contador + "]: ");
        nombre = sc.nextLine();
        if (!nombre.equals("")) {//Si no pulsa enter vacio
            nombres[contador] = nombre;
        } else {
            break;
        }
        contador++;
    } while (!nombre.equals("") && contador < nombres.length); //Mientras no pulse enter y sea menor a la longitud del array
 
    System.out.println("A continuación los nombres: ");
    for (int i = 0; i < contador; i++) {
        System.out.println(i + ": " + nombres[i]);
    }
}

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 186
Ha disminuido su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda no entiendo que hace la parte en negrita de este programa....

Publicado por Juan (70 intervenciones) el 11/09/2019 20:26:44
Es por el tipo de variable, en este caso estamos hablando de un array que contiene string, estas variables se manipulan por posiciones, que especificas dentro de los corchetes [ ]

el primer ciclo va guardando los nombres dentro de este array especificando las posiciones con la variable contador, iniciada en cero. por lo tanto el primer nombre lo guarda en la posición cero, luego aumenta el contador a 1, el segundo nombre lo guarda en la posición 1, y así sucesivamente, de manera que te queda un array así:

1
2
3
4
5
6
7
8
9
10
11
12
String[] nombres = new String[10]; -> Array de 10 posiciones
 
nombres[0]=juan
nombres[1]=Carlos
nombres[2]=Maria
nombres[3]=Ana
nombres[4]=Sebastian
nombres[5]=Rosa
nombres[6]=Esther
nombres[7]=Pedro
nombres[8]=Jesus
nombres[9]=Ivan

Si te fijas luego hay un segundo ciclo para mostrar los nombres en el cual la variable para posicionarse en el array es la variable i que aumenta progresivamente.

si la variable i vale 5 por ejemplo, el resultado seria:

nombres[i] -> muestra "Rosa" porque es el nombre almacenado en esa posición.

si quieres modificar un nombre del array tambien debes hacerlo modificando la posición, ejemplo:

quiero cambiar Carlos por Alex, nombres[1]=Alex;

PD: Los array empiezan siempre en la posición cero para java, por eso contador y la variable i del for, se inicializan en cero.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Ivan
Val: 20
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Ayuda no entiendo que hace la parte en negrita de este programa....

Publicado por Ivan (11 intervenciones) el 14/09/2019 01:50:30
Muchas gracias amigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar