Casi nunca veo un bucle for como este:
for (int i = 0; 5 != i; ++i) {} ¿Hay alguna razón técnica para usar > o < en lugar de != cuando se incrementa en 1 en un bucle for ? ¿O esto es más una convención?
while (time != 6:30pm) { Work(); }Son las 6:31 p. m.... ¡Maldita sea, ahora mi próxima oportunidad de irme a casa es mañana! :)
Esto para mostrar que la restricción más fuerte mitiga los riesgos y probablemente sea más intuitivo de entender.
No hay ninguna razón técnica. Pero hay mitigación de riesgos, mantenibilidad y una mejor comprensión del código.
< o > son restricciones más fuertes que != y cumplen exactamente el mismo propósito en la mayoría de los casos (incluso diría que en todos los casos prácticos).
Aquí hay una pregunta duplicada; y una respuesta interesante.
Sí, hay una razón. Si escribe un bucle for (basado en un índice simple y antiguo) como este
for (int i = a; i < b; ++i){} entonces funciona como se esperaba para cualquier valor de a (es decir, cero iteraciones cuando a > b b lugar de infinitas si hubiera usado i == b; ).
Por otro lado, para los iteradores escribirías
for (auto it = begin; it != end; ++it) porque cualquier iterador debe implementar un operator!= , pero no para cada iterador es posible proporcionar un operator< .
También basado en rango para bucles
for (auto e : v)no son solo azúcar elegante, sino que reducen considerablemente las posibilidades de escribir código incorrecto.