Autor Tema: Java plantear un bucle while repetitivo hasta usuario pulse tecla dada CU00666B  (Leído 1104 veces)

mary conchis

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 19
    • Ver Perfil
Solución planteada al ejercicio CU00666B del curso de programación Java para beginners.

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

public class ListaCantantes
{
    private ArrayList<String> listadecantantes;
    //constructor
    public ListaCantantes()
    {
      listadecantantes= new ArrayList<String>();
      listadecantantes.add("madona");
      listadecantantes.add("shakira");
      listadecantantes.add("thalia");
      mostrarLista();
    }
     public void setNuevoCantante(String nuevoCantante){listadecantantes.add(nuevoCantante);}
     public void mostrarLista(){
       System.out.println("la lista es:");
       for(String cantante:listadecantantes){
           System.out.println(cantante);}
    }
}

tuve algunas dificultades con el while espero si este bien

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

public class TestCantantesForExt
{
  public static void main (String [] args){
   ListaCantantes listadecantantes= new ListaCantantes();
   Scanner entradaEscaner = new Scanner (System.in);
   String respuesta="1";
   System.out.println("introduzca el nombre de otro cantante");
   listadecantantes.setNuevoCantante(entradaEscaner.nextLine());
   listadecantantes.mostrarLista();
   while(respuesta.equals("1")){
       System.out.println("si desea ingresar otro cantante ponga 1, sino ponga 2");
   respuesta=entradaEscaner.nextLine();
   if(respuesta.equals("1")){
       System.out.println("introduzca el nombre de otro cantante");
       listadecantantes.setNuevoCantante(entradaEscaner.nextLine());
       listadecantantes.mostrarLista();}
       else if(respuesta.equals("2"))
       {System.out.println("finalizo el programa");}
       else{System.out.println("entrada no valida"); } 
    }

}
« Última modificación: 14 de Agosto 2019, 19:16 por Ogramar »

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
Re:mi solucion al ejercicio del resumen (cu00666b)
« Respuesta #1 en: 20 de Noviembre 2018, 12:34 »
Hola Mari Conchis.

El ejercicio esta bien resuelto y el bucle while responde bien.

Hay muchas formas de solucionarlo y una de ellas es como tu lo has hecho yo lo hice  de otra manera pero el resultado final es el mismo.
Te pego el código para que lo veas.
Código: [Seleccionar]
public class TestListaCantantesFamosos {
    public static void main (String [ ] args) {
        System.out.print ("EjercicioCU00666B\n\n");
        System.out.print ("Introduzca nombres de cantantes.\nPara finalizar Pulse INTRO solamente\n\n");
        System.out.print ("****************Empezamos el programa**************\n");
        String fuera;// Cadena para comparar si es espacio vacio
        boolean fin=false;// Variable booleana si es true finaliza el programa
        ListaCantantesFamosos lista1 = new ListaCantantesFamosos("Nombres introducidos por usuario");
        System.out.println ("La lista esta formada por " + lista1.getTamaño() + " elementos");
        lista1.mostrarCantantes();
        do
        {
            System.out.println ("Por favor introduzca un nombre (INTRO PARA FINALIZAR):"); 
            EntradaDeTeclado entrada1 = new EntradaDeTeclado();
            System.out.print('\u000C');
            fuera=entrada1.getEntrada();//Variable que de cadena para sacar la entrada por teclado
            fin=fuera.substring(0,entrada1.getLongitud ()).equals("");//Si es espacio vacio para salir del bucle
            if(fin==false){ // Si es espacio vacio no se graba la ultima entrada y se sale del bucle
            lista1.addNombre (entrada1.getEntrada() );
            System.out.println ("Lista actualizada con :" + lista1.getTamaño() + " elementos\n INTRO PARA FINALIZAR");
            lista1.mostrarCantantes();
        }
       
        }while(!fin);
       
        System.out.print('\u000C');// Borrar pantalla en windows
        System.out.print ("******************* Gracias ************************\n\n");

        System.out.println ("La lista ha quedado formada por " + lista1.getTamaño() + " elementos");
        lista1.mostrarCantantes();
         System.out.print ("\n*****************FIN DEL PROGRAMA ************************");
    } //Cierre del main

} //Cierre de la clase

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