Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Magore en 23 de Junio 2023, 17:46

Título: Bucle for extendido - Ejercicio (CU00666B)
Publicado por: Magore 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.
Título: Re: Bucle for extendido - Ejercicio (CU00666B)
Publicado por: Kabuto 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.
Título: Re: Bucle for extendido - Ejercicio (CU00666B)
Publicado por: Magore 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.