Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: ThheMau en 19 de Septiembre 2014, 22:46

Título: Ejercicio CU00665B pedir datos repetidas veces a un usuario usando un bucle java
Publicado por: ThheMau en 19 de Septiembre 2014, 22:46
Buenas a todos, les traigo la entra de este ejercicio y una duda que tengo con respecto a algo que queria hacer, pero lo comentare al final

Clase main
Código: [Seleccionar]
import java.util.Scanner;
public class TestLista {
    public static void main (String[] args){
        System.out.println("Comenzemos el Programa");
        System.out.println("Escribe el primer cantante famoso");
            String cantante3="";
            Scanner entradaEscaner = new Scanner(System.in);
            cantante3=entradaEscaner.nextLine(); 
        System.out.println("Escribe el segundo cantante famoso");
            String cantante4="";
            Scanner entradaEscaner2 = new Scanner(System.in);
            cantante4= entradaEscaner2.nextLine();
        ListaCantantesFamosos lista1= new ListaCantantesFamosos("Nombres Introducidos por el Usuario");
        lista1.addNombre(cantante3);
        lista1.addNombre(cantante4);
        for (int i=0;i<lista1.getTamano();i++){
            System.out.println("El cantante " + (i+1) + " es: "+ lista1.getNombre(i));
        }
  }
}

Clase lista
Código: [Seleccionar]
import java.util.ArrayList;
public class ListaCantantesFamosos{
    private ArrayList<String>listaDeNombres;
    private String nombreDeLaLista;
    public ListaCantantesFamosos(String nombre){
        nombreDeLaLista=nombre;
        listaDeNombres= new ArrayList<String>();
        listaDeNombres.add("Eminem");
        listaDeNombres.add("50 cent");
        listaDeNombres.add("Dr Dre");
    }
    public void addNombre(String valor_nombre){
        listaDeNombres.add(valor_nombre);
    }
    public String getNombre(int posicion){
        if(posicion>=0&&posicion<listaDeNombres.size()){
            return listaDeNombres.get(posicion);
        }
        else {
            return "No existe un nombre para la posicion solicitada";
        }
    }
    public int getTamano(){
        return listaDeNombres.size();
    }
}

       

Bueno, ahora mi duda.

Estaba intentando hacer que no hubiera limite de entradas de cantantes, o sea poder ingresar tantos como el usuario quisiera, hice el siguiente codigo pero no funciona y me gustaria que me pudieran decir que estoy haciendo mal para poder corregirlo y aprender. Muchas gracias  ;D

Código: [Seleccionar]
import java.util.Scanner;
public class TestLista {
    public static void main (String[] args){
        System.out.println("Comenzemos el Programa");
        System.out.println("Escribe cantante que desees agregar");
        ListaCantantesFamosos lista1= new ListaCantantesFamosos("Nombres Introducidos por el Usuario");
        boolean terminar=false;
        while(terminar==false){
            String cantante="";
            Scanner entradaEscaner = new Scanner(System.in);
            cantante=entradaEscaner.nextLine();
            lista1.addNombre(cantante);
            System.out.println("Desea continuar agregando nombres(true o false)?");
            Scanner entradaEscaner2 = new Scanner(System.in);
            String continuar=entradaEscaner2.nextLine();
            if(continuar=="true"){
                terminar=false;
            }
            else{
                terminar=true;
            }
        }
        for (int i=0;i<lista1.getTamano();i++){
            System.out.println("El cantante " + (i+1) + " es: "+ lista1.getNombre(i));       

        }
    }
}
Título: Re:Ejercicio CU00665B
Publicado por: momo en 20 de Septiembre 2014, 03:51
Oye Amigo aquí te dejo el codigo como tu lo quieres te lo acomode . Vea el código y observa con detalle las cosas que le cambie de esta manera el usuario  podrá ingresar los datos que quieras (Existen otras Formas de Hacerlo también).


Lo que hice fue declarar
Citar
  boolean terminar=true;
        while(terminar==true)

De esta Manera para que entre directo al bucle y comenzara a pedir los datos de las personas

donde Pide  La Condición de que si quiere ingresar otra persona :
  utilice (squals) Este sirve para comparar dos Objetos  para mas información de este te dejo el link:
https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=628:el-metodo-equals-en-java-diferencia-entre-igualdad-e-identidad-comparar-objetos-ejemplos-cu00662b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188






Código: [Seleccionar]
import java.util.Scanner;
public class TestLista {
    public static void main (String[] args){
        ListaCantantesFamosos lista1= new ListaCantantesFamosos("Nombres Introducidos por el Usuario");
        System.out.println("Comenzemos el Programa");
         
        boolean terminar=true;
        while(terminar==true){
            System.out.println("Escribe cantante que desees agregar");           
            String cantante="";
            Scanner entradaEscaner = new Scanner(System.in);
            cantante=entradaEscaner.nextLine();
            lista1.addNombre(cantante);
            System.out.println("Desea continuar agregando nombres(Si : s o No: n)?");
            Scanner entradaEscaner2 = new Scanner(System.in);
            String continuar=entradaEscaner2.nextLine();
            if(continuar.equals("s")){
                terminar=true;
            }
            else{
                break;
            }
        }
        for (int i=0;i<lista1.getTamano();i++){
            System.out.println("El cantante " + (i+1) + " es: "+ lista1.getNombre(i));       

        }
    }
}


Espero Y Te Sirva
Título: Re:Ejercicio CU00665B
Publicado por: ThheMau en 20 de Septiembre 2014, 04:54
Muchas gracias por tu respuesta, voy a repasar el uso de equal  ;D