Condición de bucle: ¿por qué "no es igual" en lugar de "inferior a"?
Me asignaron para trabajar en un proyecto de Android-Java (juego en tiempo real) con una base de código considerable (parcialmente heredada).
La mayoría de los bucles que veo son así (donde mjk suele ser una matriz de Java):
int count = mjk.length;
for (int i = 0; i != count; ++i) {
// Stuff dealing with mjk[i]
}
Generalmente escribo bucles como este:
int count = mjk.length;
for (int i = 0; i < count; i++) {
// Stuff dealing with mjk[i]
}
¿Alguna idea de por qué el autor original (a quien no he podido contactar hasta ahora) usó el formulario anterior? ¿Es común en C ++?
La razón práctica por la que pregunto esto es la optimización JIT: por lo que sé, Android optimiza los bucles (variables de inducción, invariantes, migración de control de rango al prólogo del bucle, etc.), y me pregunto si la falta de igualdad puede evitar tales optimizaciones (a diferencia de -que, que especifica un rango bien definido).
Solo tengo curiosidad por saber si el primer uso tiene alguna ventaja o desventaja sobre el segundo (en todos los aspectos).