Ayuda Urgente!!!! bucles for!!
Publicado por davigar26 (1 intervención) el 31/01/2013 13:10:28
Bueno tengo un problema con este programa, como veis hay un bucle for dentre de otro, me pongo en el modo debug de eclipse, y veo que hace la primera iteración en el primer bucle, pasa al 2º hace todas las iteraciones de la condición, pero salta ya al else sin volver al primer for.
Algo se me escapa seguro.. pero no se si es un error de novatisimo o que pasa.. ¿Cómo lo veis?
package tProg;
public class 2013 {
/**
* Pre: asoc != null
* Post: Devuelve la referencia a una tabla que almacena los números de socio de miembros repetidos de [asoc]
* y que, por lo tanto, ya están registrados en dicha asociación con un número de socio más bajo
* (con mayor antigüedad). Si no hubiera ningún socio repetido entonces devuelve una referencia null
*/
public static int[] listaReplicados (Asociacion asoc){
int cuenta = 1;
int[] t = new int [(asoc.numSocios())];
int[] u = new int [(asoc.numSocios())];
for (int i=0; i<t.length; i++){
t[i]=asoc.socio(i).datosPersonales().dni();
}
for (int i=0; i<t.length; i++){
int dni = t[i];
for (int j=0; j<t.length; j++){
int dni2 = t[j];
if(dni==dni2){
u[cuenta]=asoc.socio(i).numeroSocio();
cuenta++;
}
else{
return null;
}
}
}
return u;
}
}
Saludos y Gracias.
Algo se me escapa seguro.. pero no se si es un error de novatisimo o que pasa.. ¿Cómo lo veis?
package tProg;
public class 2013 {
/**
* Pre: asoc != null
* Post: Devuelve la referencia a una tabla que almacena los números de socio de miembros repetidos de [asoc]
* y que, por lo tanto, ya están registrados en dicha asociación con un número de socio más bajo
* (con mayor antigüedad). Si no hubiera ningún socio repetido entonces devuelve una referencia null
*/
public static int[] listaReplicados (Asociacion asoc){
int cuenta = 1;
int[] t = new int [(asoc.numSocios())];
int[] u = new int [(asoc.numSocios())];
for (int i=0; i<t.length; i++){
t[i]=asoc.socio(i).datosPersonales().dni();
}
for (int i=0; i<t.length; i++){
int dni = t[i];
for (int j=0; j<t.length; j++){
int dni2 = t[j];
if(dni==dni2){
u[cuenta]=asoc.socio(i).numeroSocio();
cuenta++;
}
else{
return null;
}
}
}
return u;
}
}
Saludos y Gracias.
Valora esta pregunta


0