Autor Tema: Bucle for extendido - Ejercicio (CU00666B)  (Leído 1383 veces)

Magore

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 26
    • Ver Perfil
Bucle for extendido - Ejercicio (CU00666B)
« en: 23 de Junio 2023, 17:46 »
Buenas tardes.

Después de darle bastantes vueltas y modificar el código varias veces (al principio hacía uso del bucle while; hasta que finalmente opté por el do..while), os dejo mi propuesta de solución para el ejercicio (CU00666B):

Código: [Seleccionar]
import java.util.ArrayList;

public class ListaCantantesFamosos {
    ArrayList<String> listaCantantes;
   
    // Constructor:
    public ListaCantantesFamosos() {
        listaCantantes = new ArrayList<String>();
        listaCantantes.add ("Pink Floyd");
        listaCantantes.add ("Led Zeppelin");
        listaCantantes.add ("Dire Straits");
    }
   
    public void incluirCantante(String cantante) {
        listaCantantes.add (cantante);
    }
   
    public void imprimirListado() {
        System.out.println();
        System.out.println ("Listado de cantantes actualizado: ");
        for (String nombre: listaCantantes) {
            System.out.println (nombre);
        }
    }   
}

Código: [Seleccionar]
import java.util.Scanner;

public class TestCantantes {
   
    public static void main (String [] args) {
       
        ListaCantantesFamosos listado = new ListaCantantesFamosos();
        Scanner entradaTeclado = new Scanner (System.in);
       
        System.out.println(); System.out.println();
        listado.imprimirListado();
       
        boolean salir = false;
       
        do {
            System.out.println();
            System.out.println ("Introduzca un nuevo cantante o grupo");

            String nuevoCantante = entradaTeclado.nextLine();
            listado.incluirCantante (nuevoCantante);
           
            listado.imprimirListado();
           
            System.out.println();
            System.out.println ("Si desea introducir otro cantante puse 'S'");
            System.out.println ("Para salir pulse cualquier otra tecla");
            String decision = entradaTeclado.nextLine();
            if (decision.equals("S") || decision.equals("s")) {}
            else {
                salir = true;
            }
        } while (salir == false);
    }
}

Un saludo.

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Re: Bucle for extendido - Ejercicio (CU00666B)
« Respuesta #1 en: 23 de Junio 2023, 18:09 »
Todo OK.

Puedes usar ambos whiles. Aunque en este caso, como queremos garantizar que se va a ejecutar al menos una vez, usar "do while" es un poco más correcto.


Por cierto, para hacer saltos de línea, en lugar de hacerlo así:
Citar
System.out.println(); System.out.println();
quizás te sea más cómodo hacerlo así:
Citar
System.out.println("\n");

\n es un carácter especial, es decir, no tiene representación gráfica en pantalla si no que conlleva una acción, en este caso, hacer un salto de línea.

Incluso imagina que quisieras dejar una separación de por ejemplo 4 líneas, pues más cómodo usando este carácter y resolverlo en una sola instrucción:
Citar
System.out.println("\n\n\n\n");

Aunque sea especial, no deja de ser un carácter, así que puedes combinarlo con otros caracteres "normales" y hacer lo que te salga de la imaginación
Citar
System.out.println("\n\nSaliendo del programa....\n\nAdiós");

Saludos.
« Última modificación: 23 de Junio 2023, 18:12 por Kabuto »
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

Magore

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 26
    • Ver Perfil
Re: Bucle for extendido - Ejercicio (CU00666B)
« Respuesta #2 en: 23 de Junio 2023, 18:55 »
Te agradezco la sugerencia de hacer uso del carácter especial "\n", Kabuto.

Suponía que tenía que haber alguna manera más cómoda de hacer un salto de línea, pero lo desconocía.

Muchas gracias. Puedes estar seguro de que haré uso de él.

Un saludo.

 

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".