Esta es el arreglo más acertada que encomtrarás aportar, sin embargo estúdiala pausadamente y valora si se puede adaptar a tu proyecto.
Solución:
Porque un punto y coma doble no se trata como un punto y coma doble sino como un punto y coma más una declaración vacía. Y una declaración vacía, que no hace nada, no es un error.
Como dicen otras respuestas, generalmente el segundo punto y coma se interpreta como una declaración vacía, que está permitida donde sea que esté permitida una declaración.
En realidad, hay casos en los que un doble punto y coma produce un error:
public int method()
return 1;;
Cuando el compilador determina que no se puede acceder a una ubicación (y esto se define exactamente en el JLS, pero incluye las ubicaciones directamente después de un return
, break
, continue
y throw
), no se permite ninguna declaración allí, ni siquiera una vacía.
De acuerdo con el estándar del lenguaje Java, el segundo punto y coma es una declaración vacía.
Una declaración vacía no hace nada.
EmptyStatement:
;
La ejecución de una declaración vacía siempre se completa normalmente.