Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Ryche en 01 de Abril 2016, 00:51

Título: Java entrada de datos por consola Scanner(System.in) nextLine() CU00666B
Publicado por: Ryche en 01 de Abril 2016, 00:51
Buenas, aqui esta mi solucion al ejercicio sixsixsix,the number of the beast, del curso de programación Java desde cero  ;D,

Esta es la clase ListaDeCantantesFamosos:

Código: [Seleccionar]
import java.util.ArrayList;
public class ListaCantantesFamosos{
    ArrayList<String> listadenombres;
    public ListaCantantesFamosos(){
        String nombreLista="Lista de Cantantes Famosos";
        listadenombres=new ArrayList<String>();
        listadenombres.add("Bruce Dickinson");
        listadenombres.add("James Labrie");
        listadenombres.add("Mi madre fregando el suelo");
    }
   }

Y esta es la clase Test:
Código: [Seleccionar]
import java.util.Scanner;
public class TestListaCantantesFamosos{
    public static void main(String[]args){
        ListaCantantesFamosos lista1=new ListaCantantesFamosos();
        while(true){
            System.out.println("Este es el contenido actual de la lista:");
            int x=0;
            for (String nombre:lista1.listadenombres){
                System.out.println((x+1)+"- "+nombre);
                x++;}
            System.out.println("¿Deseas introducir otro cantante (S/N)?");
            Scanner escaneo=new Scanner(System.in);
            String continuar=escaneo.nextLine();
            if (continuar.equals("s")||continuar.equals("S")){
                System.out.println("Introduce nuevo cantante:");
                Scanner escaneo2=new Scanner(System.in);
                String nuevo=escaneo.nextLine();
                lista1.listadenombres.add(nuevo);}
            else{break;}
        }
    }
}

¿Está bien solucionado?

Un saludo
Título: Re:Ejercicio CU00666B.For extendido y bucle While
Publicado por: lpeiro61 en 01 de Abril 2016, 11:17
Hola Ryche, otra vez por aquí.
Yo lo tengo muy parecido al tuyo.

Para el if (continuar.equals("s")||continuar.equals("S"))
yo he puesto if(continuar.equalsIngoreCase("s"))
y así con una sóla condición vale para mayúscula o minúscula.

Saludos.
Título: Re:Ejercicio CU00666B.For extendido y bucle While
Publicado por: Ryche en 01 de Abril 2016, 12:24
Si, más sencillo, voy a cambiarlo.

Gracias!!
Título: Re:Ejercicio CU00666B.For extendido y bucle While
Publicado por: Alex Rodríguez en 03 de Abril 2016, 11:05
Hola Ryche, te recomiendo leer los comentarios que he dejado en el hilo https://www.aprenderaprogramar.com/foros/index.php?topic=4299.0

Saludos
Título: Re:Ejercicio CU00666B.For extendido y bucle While
Publicado por: Alex Rodríguez en 03 de Abril 2016, 11:08
Y también este hilo donde se explica que no debe usarse while(true): https://www.aprenderaprogramar.com/foros/index.php?topic=3074.0
Título: Re:Java entrada de datos por consola Scanner(System.in) nextLine() CU00666B
Publicado por: Ryche en 03 de Abril 2016, 12:38
Si, me estaba acostumbrando un poco mal con el while(true)

He rehecho el ejercicio y creo que ahora esta bien.

Clase ListaCantantesFamosos:
Código: [Seleccionar]
import java.util.Scanner;
import java.util.ArrayList;
public class ListaCantantesFamosos{
    ArrayList<String> listadenombres;
    private String nombreLista="Lista de Cantantes Famosos";
    public ListaCantantesFamosos(){
        listadenombres=new ArrayList<String>();
        listadenombres.add("Bruce Dickinson");
        listadenombres.add("James Labrie");
        listadenombres.add("Mi madre fregando el suelo");
    }
    public void ListarListaCantantes(){
        System.out.println(nombreLista);
        int x=0;
        for (String nombre:listadenombres){
            System.out.println(x+"-"+nombre);
            x++;}
        }
    public void AñadirCantante(){
        System.out.println("Introduce nuevo cantante:");
        Scanner escaneo=new Scanner(System.in);
        String nuevo=escaneo.nextLine();
            listadenombres.add(nuevo);}
       }

clase Test:
Código: [Seleccionar]
mport java.util.Scanner;
public class TestListaCantantesFamosos{
    public static void main(String[]args){
        ListaCantantesFamosos lista1=new ListaCantantesFamosos();
        lista1.ListarListaCantantes();
        System.out.println("¿Deseas introducir otro cantante (S/N)?");
        Scanner escaneo=new Scanner(System.in);
        String continuar=escaneo.nextLine();
        while (continuar.equalsIgnoreCase("s")){
            lista1.AñadirCantante();
            lista1.ListarListaCantantes();
            System.out.println("¿Deseas introducir otro cantante (S/N)?");
            continuar=escaneo.nextLine();}
        System.out.println("Hasta otra");
    }
}

Un saludo

Título: Re:Java entrada de datos por consola Scanner(System.in) nextLine() CU00666B
Publicado por: Alex Rodríguez en 05 de Abril 2016, 10:33
Hola, ahora mucho mejor

Saludos