Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado 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
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
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
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));
}
}
}
-
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
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
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
-
Muchas gracias por tu respuesta, voy a repasar el uso de equal ;D