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

[SOLUCIONADO] Error equals

Estas en el tema de Error equals en el foro de Java en Foros del Web. Buenas a todos, a ver si me se explicar... He echo un programa de matriculacion, en el que los DNI de los alumnos matriculados se ...
  #1 (permalink)  
Antiguo 12/04/2013, 01:44
 
Fecha de Ingreso: diciembre-2012
Mensajes: 21
Antigüedad: 11 años, 4 meses
Puntos: 0
Error equals

Buenas a todos, a ver si me se explicar... He echo un programa de matriculacion, en el que los DNI de los alumnos matriculados se guardan en un array, exactamente en nouArrayDNI[].dni... el problema viene cuando he de introducir un dni de los que he puesto antes, si lo pongo bien el programa se me ha de ir a evaluacionModul(); y si lo hago mal, decirme que ese alumno no esta matriculado.

Ponga lo que ponga el programa constantemente me lo da como bueno, asi que debajo del for he puesto un System para que me muestre que hace. He matriculado los DNI:
posicion 0: 999
posicion 1: 111
y por teclado he metido: 555

Con lo que el System me muestra...

El dni 999 es igual a 555
El dni 111 es igual a 555

Y aun asi, sin ser igual me hace como si estuviera bien... este es parte de el código:

System.out.print("DNI del alumne a avaluar: ");

dni = lector.next();

for (int i = 0; i < k; i++) {
System.out.println("El dni "+nouArrayDNI[i].dni+" es igual a "+dni+"");
if ((dni).equals(nouArrayDNI[i].dni)) {
cdni=true;
posicionDNI = i;
}
}
if (cdni=true) {
posicionDNI = evaluacioModul(posicionDNI, opcio, posicio, intrAlumnes, posMod, posUF, dni, modul);
} else {
System.out.println("El alumne no existeix");
modeDNI (opcio, posicio, intrAlumnes, posMod, posUF, dni, modul);
}
  #2 (permalink)  
Antiguo 12/04/2013, 01:55
 
Fecha de Ingreso: diciembre-2012
Mensajes: 21
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Error equals

Decir que tambien probe sustituyendo el equals por == y tampoco funciona.
  #3 (permalink)  
Antiguo 12/04/2013, 02:01
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Error equals

if (cdni= true)

¿cómo se hacen en java las comparaciones y cómo las asignaciones?
__________________
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 12/04/2013, 02:10
 
Fecha de Ingreso: diciembre-2012
Mensajes: 21
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Error equals

Tengo declarado:

boolean cdni = false;
  #5 (permalink)  
Antiguo 12/04/2013, 02:17
 
Fecha de Ingreso: diciembre-2012
Mensajes: 21
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Error equals

Es que si lo pongo así:

System.out.println("-- inici avaluacio moduls --");
System.out.print("DNI del alumne a avaluar: ");

dni = lector.next();

for (int i = 0; i < k; i++) {
System.out.println("El dni "+nouArrayDNI[i].dni+" es igual a "+dni+"");
if (dni.equals(nouArrayDNI[i].dni)) {
cdni=true;
posicionDNI = i;
posicionDNI = evaluacioModul(posicionDNI, opcio, posicio, intrAlumnes, posMod, posUF, dni, modul);
} else {
System.out.println("El alumne no existeix");
modeDNI (opcio, posicio, intrAlumnes, posMod, posUF, dni, modul);
}
}

Solo me dice que esta bien si pongo el array en posicion 0, si pongo el que esta en otra posicion, me dice que el alumno no existe.
  #6 (permalink)  
Antiguo 12/04/2013, 02:17
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Error equals

Y en el if también, por lo que en vez de comparar estás convirtiendo cdin en true.

if (cdni= true) <= Asignación

if (cdni== true) <= Comparación
__________________
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.
  #7 (permalink)  
Antiguo 12/04/2013, 02:18
 
Fecha de Ingreso: diciembre-2012
Mensajes: 21
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Error equals

ostraaaaaaas... voy a probar...
  #8 (permalink)  
Antiguo 12/04/2013, 02:20
 
Fecha de Ingreso: diciembre-2012
Mensajes: 21
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Error equals

Xerelo muchas gracias, perfecto... se nota que soy novaya no??? se me escapan muchas cosas... lo que hace un =
  #9 (permalink)  
Antiguo 12/04/2013, 03:08
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 7 meses
Puntos: 188
Respuesta: Error equals

¿"Novaya"? ¿Eres nueva aquí y hablas ruso?

:D java solo admite == para tipos primitivos, la comparación entre objetos es siempre con equals. Procura que el primer objeto a comparar no sea null, porque
null.equals(algo) devuelve un NullPointerException.

Y tranquila, nos pasa a todos, incluso después de algunos años
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #10 (permalink)  
Antiguo 12/04/2013, 03:31
 
Fecha de Ingreso: diciembre-2012
Mensajes: 21
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Error equals

no, ya elimine los nulls del Array, gracias :)))

Creo que en unos minutos me vuelvo a pasar por aqui... xD porque creo que la estoy liando otra vez jajajaja... a ver si lo consigo hacer yo sola.
  #11 (permalink)  
Antiguo 12/04/2013, 03:42
 
Fecha de Ingreso: diciembre-2012
Mensajes: 21
Antigüedad: 11 años, 4 meses
Puntos: 0
Otra duda: Comparacion Array con palabra entrada por teclado.

Siento ser tan pesada y preguntar por segunda vez, pero me ha surgido otra duda:

Tengo el array: nouArrayModul[].moduls
En la posicion: nouArrayModul[posicionDNI].moduls tengo estos datos: M1 M2 M3
y tengo que entrar un modulo por teclado o M1 o M2 o M3 o M4 que se llamara modul.

Entonces tengo que mirar si modul esta en la posicionDNI del nouArrayModul.

Yo puse:
Que se que esta mal porque es imposible que:
M1 M2 M3 sea igual a M1... pero no se como hacer para que no me lo compare, si no que me revise si lo incluye.


if (((nouArrayModul[posicionDNI].moduls).equals(modul))&&(modul=="M1")) {
cmodul = true;
}
if (cmodul==true) {
Modul1(opcio, posicio, intrAlumnes, posMod, posUF, dni, modul);
} else {
if (((nouArrayModul[posicionDNI].moduls).equals(modul))&&(modul=="M2")) {
cmodul = true;
}
if (cmodul==true) {
Modul2(opcio, posicio, intrAlumnes, posMod, posUF, dni, modul);
} else {
if (((nouArrayModul[posicionDNI].moduls).equals(modul))&&(modul=="M3")) {
cmodul = true;
}
if (cmodul==true) {
Modul3(opcio, posicio, intrAlumnes, posMod, posUF, dni, modul);
} else {
if (((nouArrayModul[posicionDNI].moduls).equals(modul))&&(modul=="M4")) {
cmodul = true;
}
if (cmodul==true) {
Modul1(opcio, posicio, intrAlumnes, posMod, posUF, dni, modul);
} else {
System.out.println("Aquest alumne, no esta matriculat en el modul: " +modul+"");
evaluacioModul(posicionDNI, opcio, posicio, intrAlumnes, posMod, posUF, dni, modul);
}
}
}
}
  #12 (permalink)  
Antiguo 12/04/2013, 03:46
 
Fecha de Ingreso: diciembre-2012
Mensajes: 21
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Error equals

Perdonar, lo paso a un tema nuevo, que este ya estaba solucionado.

Etiquetas: programa
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 05:16.