Al compilar un codigo en Java me da error y no consigo averiguar qué pasa

Iniciado por bettu, 30 Septiembre 2015, 23:18 PM

0 Miembros y 1 Visitante están viendo este tema.

bettu

Hola,

Justo ahora estoy aprendiendo ha programar un poquillo de Java y me han pasado un código en que debo encontrar errores sintácticos y semanticos como parte del aprendizaje. De momento estoy con los sintácticos para que me deje compilar el programa, lo que pasa que estoy encallado en un error y no veo muy bien qué falla (adjunto parte de código):

Código (java) [Seleccionar]
public void sort() {
boolean end = false; //SINTACTIC ERROR: we must write boolean and not bool
int upperLimit = this.quantity - 1;
while ((upperLimit > 0) && (!end)) {
boolean swapped = false;
for (int j = 0; j < upperLimit; j++) {
if (!isSorted(j, j+1))
swap(j, j + 1);
swapped = true;
}
}
if (!swapped) {     //aquí es donde me falla
end = true;
}
upperLimit++;
};


Es parte de un código que lo que hace es ordenar los numeros de menor a mayor. El programa es más extenso pero creo que los errores los he podido corregir pero por más que me peleo, de aquí ya no paso.

¿Alguien podría explicarme cómo debería ser ese condicional? He probado poniendo !=swapped pero aun así nada...

Gracias!

MGGM

El if no tiene llave de apertura pero sí de cierre. Por lo tanto, la llave de cierre del if cierra el for y la llave de cierre del for cierra el while, por ende, swapped no existe fuera del while.

bettu

Cita de: MGGM en  1 Octubre 2015, 00:45 AM
El if no tiene llave de apertura pero sí de cierre. Por lo tanto, la llave de cierre del if cierra el for y la llave de cierre del for cierra el while, por ende, swapped no existe fuera del while.

Co*o, es verdad, que tonto soy xD No me di cuenta del claudator del if.

Muchas gracias, con eso ya me funcionó, mil gracias :D


Saludos,