Autor Tema: Java ejercicio resuelto For extendido o for each ejemplo de código CU00666B  (Leído 1721 veces)

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 258
    • Ver Perfil
Buenas amigos, aquí dejo una posible solución el ejercicio CU00666B del curso de programación orientada a objetos con Java desde cero.

Citar
EJERCICIO

Crea una clase denominada ListaCantantesFamosos que al ser inicializada contenga un ArrayList con tres Strings que sean el nombre de cantantes famosos. Crea una clase test con el método main que inicialice un objeto ListaCantantesFamosos y usando un for extendido muestre los cantantes en la lista por pantalla. Se debe pedir al usuario un nombre más de cantante famoso, y una vez introducido mostrar la lista actualizada usando un for extendido. Una vez mostrada la lista actualizada, se debe dar opción a elegir entre volver a introducir otro cantante o salir del programa (se podrán introducir tantos cantantes como se desee, para ello usa un bucle while que dé opción a elegir al usuario). Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com

código ListaCantantesFamosos

Código: [Seleccionar]
/**
 * Ejercicio CU00666B del curso de java desde cero de aprenderaprogramar.com
 * Versión 0.1
 * Realizado por Pandemia
 */
import java.util.ArrayList;

public class ListaCantantesFamosos
{
    private String cantantes_Famosos;
    private ArrayList<String> listaCantantesFamosos;

    public ListaCantantesFamosos(String cantantesFamosos){

        cantantes_Famosos = cantantesFamosos;
        listaCantantesFamosos = new ArrayList<String>();
        listaCantantesFamosos.add("Alaska");
        listaCantantesFamosos.add("Katy Perry");
        listaCantantesFamosos.add("Taylor Swift");
        listaCantantes();
    }//cierre del método

    public String getcantante(int elemento){
        if (elemento >= 0 && elemento < listaCantantesFamosos.size()){
            return listaCantantesFamosos.get(elemento);}
        else
        {return "no existe la posición";}
    }//cierre del método

    public void setCantante(String losCantantes){ listaCantantesFamosos.add(losCantantes); }

    public void listaCantantes(){
        int i = 1;
        System.out.println("Nombre de la lista: " + cantantes_Famosos);
        for(String cantante : listaCantantesFamosos)
        {
            System.out.println(i + " .- " + cantante);
            i++;
        }
    }//cierre del método

}//Cierre de la clase


Código TestListaCantantesFamosos

Código: [Seleccionar]
/**
 * Ejercicio CU00666B del curso de java desde cero de aprenderaprogramar.com
 * Versión 0.1
 * Realizado por Pandemia
 */

import java.util.Scanner;

public class TestListaCantantesFamosos
{
    public static void main (String [ ] Args){
        ListaCantantesFamosos lista = new  ListaCantantesFamosos("Cantantes de moda");
        Scanner sc = new Scanner(System.in);
        String pedirCantante = "";
        System.out.println("Ingrese un nuevo nombre de cantante a la lista de famosos");
        lista.setCantante((pedirCantante = sc.nextLine()));
        lista.listaCantantes();

        do{
            System.out.println("¿Desea ingresar un nuevo cantante? \"SI\" o \"NO\"");
            pedirCantante = sc.nextLine();
            pedirCantante = pedirCantante.toLowerCase(); //Convertir la variable "PedirCantante" en miúsculas

            if (pedirCantante.equals("si")){
                lista.setCantante((pedirCantante = sc.nextLine()));
            }
            else{
                pedirCantante = "no";
                lista.listaCantantes();
            }
        }while (! "no".equals(pedirCantante));

        System.out.println("Fin del Programa, gracias por su participación");
    }//Cierre del main
}//Cierre de la clase


Saludos y gracias por vuestro tiempo....  :D
« última modificación: 09 de Septiembre 2016, 09:07 de César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2228
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola!

No se entiende bien en la clase ListaCantantesFamosos el atributo private String cantantes_Famosos; Al poner un nombre siempre debes pensar en si está describiendo bien lo que representa. En este caso, si lo que quieres es ponerle un nombre a la lista el atributo debería llamarse nombre_Lista ó algo similar. Es importante cuidar los nombres!

En el for extendido normalmente no se hace uso de contadores:

        for(String cantante : listaCantantesFamosos)
        {
            System.out.println(i + " .- " + cantante);
            i++;
        }

mira la explicación en http://www.aprenderaprogramar.com/foros/index.php?topic=3210.0

Lo demás bien!

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 258
    • Ver Perfil
Tienes razón Cesar, ya he mejorado el ejercicio.

 
Código: [Seleccionar]
/**
 * Ejercicio CU00666B del curso de java desde cero de aprenderaprogramar.com
 * Versión 0.1
 * Realizado por Pandemia
 */
import java.util.ArrayList;

public class ListaCantantesFamosos
{
    private String cantantes_Famosos;
    private ArrayList<String> listaCantantesFamosos;

    public ListaCantantesFamosos(String cantantesFamosos){

        cantantes_Famosos = cantantesFamosos;
        listaCantantesFamosos = new ArrayList<String>();
        listaCantantesFamosos.add("Alaska");
        listaCantantesFamosos.add("Katy Perry");
        listaCantantesFamosos.add("Taylor Swift");
        listaCantantes();
    }//cierre del método

    public String getcantante(int elemento){
        if (elemento >= 0 && elemento < listaCantantesFamosos.size()){
            return listaCantantesFamosos.get(elemento);}
        else
        {return "no existe la posición";}
    }//cierre del método

    public void setCantante(String losCantantes){ listaCantantesFamosos.add(losCantantes); }

    public void listaCantantes(){
        int i = 1;
        System.out.println("Nombre de la lista: " + cantantes_Famosos);
        for(String cantante : listaCantantesFamosos)
        {
            System.out.println(i + " .- " + cantante);
        }
    }//cierre del método

}//Cierre de la clase


Código: [Seleccionar]
/**
 * Ejercicio CU00666B del curso de java desde cero de aprenderaprogramar.com
 * Versión 0.1
 * Realizado por Pandemia
 */

import java.util.Scanner;

public class TestListaCantantesFamosos
{
    public static void main (String [ ] Args){
        ListaCantantesFamosos lista = new  ListaCantantesFamosos("Cantantes de moda");
        Scanner sc = new Scanner(System.in);
        String pedirCantante = "";
        System.out.println("Ingrese un nuevo nombre de cantante a la lista de famosos");
        lista.setCantante((pedirCantante = sc.nextLine()));
        lista.listaCantantes();

        do{
            System.out.println("¿Desea ingresar un nuevo cantante? \"SI\" o \"NO\"");
            pedirCantante = sc.nextLine();
            pedirCantante = pedirCantante.toLowerCase(); //Convertir la variable "PedirCantante" en miúsculas

            if (pedirCantante.equals("si")){
                lista.setCantante((pedirCantante = sc.nextLine()));
            }
            else{
                pedirCantante = "no";
                lista.listaCantantes();
            }
        }while (! "no".equals(pedirCantante));

        System.out.println("Fin del Programa, gracias por su participación");
    }//Cierre del main
}//Cierre de la clase


Saludos y gracias por tu tiempo....

 

Esto es un laboratorio de ideas...
Aprender a programar

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