He estado programando en Java durante varios años, pero recientemente regresé a la escuela para obtener un título formal. Me sorprendió bastante saber que, en mi última tarea, perdí puntos por usar un bucle como el siguiente.
do{
//get some input.
//if the input meets my conditions, break;
//Otherwise ask again.
} while(true)
Ahora, para mi prueba, solo estoy buscando información de la consola, pero me dijeron que se desaconseja este tipo de bucle porque el uso break
es similar goto
, simplemente no lo hacemos.
Entiendo completamente las trampas goto
y su primo de Java break:label
, y tengo el buen sentido de no usarlas. También me doy cuenta de que un programa más completo proporcionaría otros medios de escape, por ejemplo, para terminar el programa, pero esa no fue una razón por la que mi profesor lo citó, así que ...
¿Qué tiene de malo do-while(true)
?
break
es probablemente bien intencionada, pero en realidad mal entendida. Quizás pueda educar a su profesor sobre esto;) En mi experiencia, los profesores no saben mucho sobre el oficio de la programación.
do {} while (true)
es equivalente while(true) {}
y este último es, con mucho, la forma más convencional y mucho más clara.
break
, debería intentar programar en un lenguaje sin él. ¡No toma muchos bucles antes de que lo desee!