Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: jotinga en 03 de Mayo 2016, 10:24

Título: Ejercicio sobre el For Each Java en Eclipse cómo manejar los bucles CU00666B
Publicado por: jotinga en 03 de Mayo 2016, 10:24
Estimados, llevo poco tiempo realizando el curso de programación java desde cero y me ha parecido genial muy didáctico y practico, desde ya agradecer a los creadores y a la comunidad en general.

Ahora al código para el ejercicio CU00666B (mi solución al ejercicio - CU00666B).

Desde ya comentar que lo ejecuté en Eclipse y me funcionó de maravilla, espero las respectivas correcciones.

Saludos

Código: [Seleccionar]
//Clase con métodos

import java.util.ArrayList;


public class ListaCantantesFamosos {
private String nombreCantante;
private ArrayList<String>listacantantes;

public ListaCantantesFamosos(String cantante){
nombreCantante=cantante;
listacantantes=new ArrayList<String>();
listacantantes.add("Nach Scratch");
listacantantes.add("Shotta");
listacantantes.add("Chojin");

}
public void addCantante(String valCantante){
listacantantes.add(valCantante);
}
public String getCantante(int posicion){
if(posicion>=0 && posicion<listacantantes.size()){
return listacantantes.get(posicion);
}else
return "No existe nombre para posicion seleccionada";
}
public int getTamaño(){
return listacantantes.size();
}
public void removeCantante(int posicion){
if(posicion>=0 && posicion<listacantantes.size()){
listacantantes.remove(posicion);
}else{}
}
//método que usa el for each o for extendido
public void listarCantantes(){
int i=0;
System.out.println ("La lista ha quedado formada por " + getTamaño() + " Cantantes\n");
System.out.println("Los Cantantes de Jorge Son :");
for(String nombre:listacantantes){
System.out.println((i+1)+".-"+nombre);
i++;
}

}
}


Clase con el main
Código: [Seleccionar]
//método main
import java.util.Scanner;

public class TestListaCantantes {

public static void main(String[] args) {

System.out.println("Ingrese un cantante");
EntradaDeTeclado entrada1=new EntradaDeTeclado();
Scanner s=new Scanner(System.in);
ListaCantantesFamosos lista1=new ListaCantantesFamosos("Cantantes Famosos");

lista1.addCantante(entrada1.getEntrada());
lista1.listarCantantes();//llamar al metodo que usa for each
System.out.println("\n");

int alternativa=0;
do{
System.out.println("\n");
System.out.println("¿Desea agregar otro cantante ?\n Escriba\n1 para SI  \n2 para salir ");
alternativa=s.nextInt();
if(alternativa==2){
System.out.println("Hasta luego");
break;
}

System.out.println("Ingrese un cantante nuevamente");
EntradaDeTeclado entrada2=new EntradaDeTeclado();
lista1.addCantante(entrada2.getEntrada());
lista1.listarCantantes();
}
while(alternativa==1);
}

}
   



Título: Re:Ejercicio sobre el For Each Java - CU00666B
Publicado por: Alex Rodríguez en 05 de Mayo 2016, 19:32
Hola jotinga para poder valorar un ejercicio siempre pedimos que se incluya todo el código necesario (incluso aunque sea código que figure en el curso o en otros ejercicios). De ese modo podemos compilarlo y reproducir exactamente lo que ocurre en tu computador.

En este caso me indica que falta la clase EntradaDeTeclado al menos (no sé si alguna más)

Saludos
Título: Re:Ejercicio sobre el For Each Java - CU00666B
Publicado por: jotinga en 05 de Mayo 2016, 19:39
Mis disculpas acá la clase que faltaba

Código: [Seleccionar]
//EntradaDeTeclado

import java.util.Scanner;
public class EntradaDeTeclado {

private String entradaTeclado;

public EntradaDeTeclado(){
entradaTeclado="";
pedirEntrada();
}

public void pedirEntrada(){
Scanner entradaEscaner=new Scanner(System.in);
entradaTeclado=entradaEscaner.nextLine();
}
public String getEntrada(){
return entradaTeclado;
}
public String getPrimeraPalabra(){
for(int i=0;i<=entradaTeclado.length();i++){
if(entradaTeclado.subSequence(i, i+1).equals(" ")){
return entradaTeclado.substring(0, i+1);
}
}
return entradaTeclado;
}
public int getLongitud(){
return entradaTeclado.length();
}
}
Título: Re:Ejercicio sobre el For Each Java - CU00666B
Publicado por: Alex Rodríguez en 05 de Mayo 2016, 19:44
Hola de nuevo. El ejercicio funciona pero te hago algunas recomendaciones para corregir

No usar eñes en nombres de métodos o variables. Por ejemplo en lugar de getTamaño() usar getTamanno

Sobre el uso de un contador en un foreach Java leer este hilo: https://www.aprenderaprogramar.com/foros/index.php?topic=2784.0

Sobre el uso de break para salir de un bucle leer este hilo: https://www.aprenderaprogramar.com/foros/index.php?topic=4096.0

Saludos
Título: Re:Ejercicio sobre el For Each Java - CU00666B
Publicado por: jotinga en 05 de Mayo 2016, 19:51
Muchas gracias por las correcciones, las tomare en consideración para un próximo ejercicio.

Saludos.