Estoy tomando un curso intermedio de estructuras de datos como requisito previo para ingresar al programa CS MS en una universidad de la que todos en América han oído hablar. Me llamó la atención una línea de código escrita en clase:
if (a > 33 | b++ < 54) {...}
Esto no pasaría una revisión de código en mi lugar de trabajo. Si escribió un código como este en una entrevista, este sería un ataque significativo contra usted. (Además de ser un condicional con efectos secundarios, es inteligente a expensas de la claridad).
De hecho, nunca he visto un condicional con efectos secundarios, y Google tampoco aparece mucho. Otro estudiante se quedó después de clase para preguntar sobre eso también, así que no soy el único que pensó que esto era extraño. Pero el profesor insistió bastante en que este era un código aceptable y que escribiría algo así en el trabajo. (Su trabajo de FT es como SWE principal en una compañía de la que todos han oído hablar).
No puedo imaginar un mundo en el que esta línea de código sea alguna vez aceptable, y mucho menos deseable. ¿Me equivoco? ¿Esta bien? ¿Qué pasa con el caso más general: condicionales con efectos secundarios? ¿Alguna vez están bien?