Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con Ciclo FOR

Estas en el tema de Problema con Ciclo FOR en el foro de Java en Foros del Web. Hola buenos días para todos. Estoy aprendiendo el lenguaje de programación JAVA. Para eso me he puesto a hacer unas pruebas para aprender de la ...
  #1 (permalink)  
Antiguo 21/05/2011, 13:43
Avatar de fekaa11  
Fecha de Ingreso: abril-2011
Ubicación: Córdoba / Argentina
Mensajes: 115
Antigüedad: 13 años, 7 meses
Puntos: 34
Problema con Ciclo FOR

Hola buenos días para todos.

Estoy aprendiendo el lenguaje de programación JAVA. Para eso me he puesto a hacer unas pruebas para aprender de la misma manera que lo hice con los otros lenguajes (PHP, VB, AUTOIT, ETC..) y tengo un problema.

Tengo que crear variables con un identificador que dependa del número del ciclo de un for (tampoco se explicarlo muy bien, es lo que me salió ).

Ejemplo de un código en JAVA y lo que quiero obtener como resultado :

Cita:
for (int i=0;i<5;i++){
System.out.print("Escribe un nombre: ");
nombre = In.readLine();
}
Perfecto, lo que hace basicamente es pedir 5 nombres y los guarda en la variable nombre. Pero no es lo que quiero, justamente necesito guardar los nombres de la siguiente manera para luego poder usarlos:

Cita:
nombre_1 = Primer nombre
nombre_2 = Segundo nombre
nombre_3 = Tercer nombre
Y así sucesivamente. Se como hacerlo con arreglos pero no es lo que quiero, asi que no me den soluciones con arreglos (arrays) porque se como hacerlo pero no quiero una solución de esa manera.

Espero me puedan ayudar, un saludo !
__________________
Pedir perdón es de hombres inteligentes. Perdonar es de sabios.
  #2 (permalink)  
Antiguo 21/05/2011, 17:48
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 5 meses
Puntos: 416
Respuesta: Problema con Ciclo FOR

Cita:
Y así sucesivamente. Se como hacerlo con arreglos pero no es lo que quiero, asi que no me den soluciones con arreglos (arrays) porque se como hacerlo pero no quiero una solución de esa manera.
En ese caso no hay forma, Java no soporta variables variables como lo hace PHP por ejemplo.
O te conformas con arrays o usas otro tipo de Collection

Solo por curiosidad, ¿porque no quieres hacerlo con arrays?
  #3 (permalink)  
Antiguo 21/05/2011, 17:50
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Respuesta: Problema con Ciclo FOR

Cita:
asi que no me den soluciones con arreglos (arrays) porque se como hacerlo pero no quiero una solución de esa manera.
En java no se usan los nombres dinámicos de variables.

Lo más parecido a lo que quieres hacer es usar un Map, que no deja de ser un Collection, como los List.

http://download.oracle.com/javase/6/.../util/Map.html

Cuando cambiamos de lenguaje, queremos hacer las cosas igual que en los lenguajes que conocemos y esto no debería ser así, cada lenguaje tiene su forma de programar.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #4 (permalink)  
Antiguo 21/05/2011, 20:38
Avatar de fekaa11  
Fecha de Ingreso: abril-2011
Ubicación: Córdoba / Argentina
Mensajes: 115
Antigüedad: 13 años, 7 meses
Puntos: 34
Respuesta: Problema con Ciclo FOR

Cita:
Iniciado por Ronruby Ver Mensaje
En ese caso no hay forma, Java no soporta variables variables como lo hace PHP por ejemplo.
O te conformas con arrays o usas otro tipo de Collection

Solo por curiosidad, ¿porque no quieres hacerlo con arrays?
No lo quiero hacer con arrays amigo porque estoy ayudando a una amiga en un ejercicio para la facultad. Pero resulta que ella me dice que el profesor, le dijo que se podía hacer con FOR solamente (todavía no les han enseñado arrays).

El caso es que el profesor le dijo que haga lo siguiente:

Cita:
1- Inicializar ciclo For de 2 iteraciones.
2- Guardar nombre escrito por el usuario en una variable llamada NOMB.
3- Guardar nota (numérica) escrita por el usuario en una variable llamada PROM.
4- Luego fuera del ciclo, mostrar la nota mas alta (entre los dos nombres) y el nombre del "ganador".
No se si se entiende, basicamente el problema surge que siempre se muestra el nombre del último nombre escrito y su respectiva nota (ya que la variable de la iteracion 2 reemplaza a la variable de la iteracion 1).

Gracias RonRuby igual por la información. Vengo de programar en PHP y pensé que tambien se podía realizar lo mismo en Java.

Con respecto a Xerelo, como ya he repetido, no puedo usar ningún contenido que no le hayan enseñado en la facu (imaginate que hasta ahora sólo el for y el If).

Saludos y gracias a ambas respuestas!
__________________
Pedir perdón es de hombres inteligentes. Perdonar es de sabios.
  #5 (permalink)  
Antiguo 21/05/2011, 22:28
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 5 meses
Puntos: 416
Respuesta: Problema con Ciclo FOR

En ese caso yo haria lo siguiente:

Aparte de las variables NOMB y PROM, tendria 2 mas casi identicas, por ejemplo: currentNOMB y currentPROM.
Debes inicializar tu variable PROM con 0.
Dentro del for, luego de que los datos son "agarrados" dices:
Guardo la nota que me acaban de dar en currentPROM y el nombre del estudiante en currentNOMB
Es esa nota mayor a la actual en PROM?
Si lo es, entonces guardo currentNOMB en NOMB y currentPROM en PROM.
NOMB = currentNOMB
PROM = currentPROM
En caso de no serlo, no sobreescribo los valores en NOMB y PROM y listo.

Al final de la iteración tendras el nombre y la nota mas alta. Eso si, los demas datos (es decir los demas estudiantes con sus notas) ya no existen porque se fueron sobreescribiendo.
  #6 (permalink)  
Antiguo 22/05/2011, 10:46
Avatar de fekaa11  
Fecha de Ingreso: abril-2011
Ubicación: Córdoba / Argentina
Mensajes: 115
Antigüedad: 13 años, 7 meses
Puntos: 34
Respuesta: Problema con Ciclo FOR

Un ejemplo en código Ronruby por favor ? Porque casi ni entendi lo que has dicho; de todas formas gracias porque es una gran ayuda que me sirve demasiado.
__________________
Pedir perdón es de hombres inteligentes. Perdonar es de sabios.
  #7 (permalink)  
Antiguo 22/05/2011, 13:02
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 5 meses
Puntos: 416
Respuesta: Problema con Ciclo FOR

Te lo muestro en pseudocodigo:

Código:
NOMB = ""
PROM = 0
currentNOMB = ""
currentPROM = 0

for(i = 0; i < 2; i++) {
  //Toma el input del teclado
  currentNOMB = INPUT TECLADO; OBTENER NOMBRE
  currentPROM = INPUT TECLADO; OBTENER PROMEDIO
  if(currentPROM > PROM) {
    PROM = currentPROM; NOMB = currentNOMB;
  }
}

//VOILA
  #8 (permalink)  
Antiguo 22/05/2011, 13:55
Avatar de fekaa11  
Fecha de Ingreso: abril-2011
Ubicación: Córdoba / Argentina
Mensajes: 115
Antigüedad: 13 años, 7 meses
Puntos: 34
Respuesta: Problema con Ciclo FOR

Gracias RonRuby!

Me has sacado de un gran apuro, te lo agradezco.

Un saludo!
__________________
Pedir perdón es de hombres inteligentes. Perdonar es de sabios.

Etiquetas: ciclos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:55.