elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  while(true) mala practica?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: while(true) mala practica?  (Leído 502 veces)
Panic0

Desconectado Desconectado

Mensajes: 216



Ver Perfil
while(true) mala practica?
« en: 23 Noviembre 2022, 02:12 am »

Hola, como estan, vengo enojado porque hoy mi profesor me anulo un examen por usar while(true) (en java)....

Es muy mala practica usar un while true de esa forma?


Gracias!


En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
Danielㅤ


Desconectado Desconectado

Mensajes: 1.313


🔵🔵🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: while(true) mala practica?
« Respuesta #1 en: 23 Noviembre 2022, 16:54 pm »

Hola, si tal cual tu profesor tiene razón y de hecho yo siempre he pensado que usar while(True) es una mala práctica porque lo veo irrelevante, ya que él while además de ser un bucle es como si fuera una función recursiva que se llama a si misma y los parámetros es lo que se tiene que cumplir para que el bucle genere ciclos (vueltas).

Para mi la mejor manera de usar un bucle infinito es con while(1).


Saludos


En línea

¡Regresando como cual Fenix! ~
Bomber Code © 2022 https://www.bombercode.net/foro/

Ayudas - Aportes - Tutoriales - Y mucho mas!!!
Tachikomaia


Desconectado Desconectado

Mensajes: 772


Superhacker (es broma xD )


Ver Perfil
Re: while(true) mala practica?
« Respuesta #2 en: 24 Noviembre 2022, 01:46 am »



https://www.reddit.com/r/CharruaDevs/comments/z2bjqy/posta_es_malo_usar_whiletrue/

De ahí, concuerdo conque es mejor poner la condición que andar poniendo breaks o quién sabe qué, quién sabe donde, pero puede resultar cómodo hacerlo como lo hiciste y me parece bien salvo que implique muchas cosas complicadas. Por ejemplo podés pensar "quiero que cuando se presione tales teclas sucedan cuales cosas" y después que ponés "repetir" ves hasta cuando querés que se repita o los casos de quiebre donde los quieras. Si es así, es mejor poner por ejemplo
terminar = "no"
do
  cosa
while terminar=="no"
O sea en vez de poner breaks cambiás la variable terminar y es lo mismo y más claro, AUNQUE menos rápido e intuitivo, quizá por eso se intuye poner cualquier condición...

No me cierra mucho eso de las buenas/malas prácticas, hago lo que quiero. Bueno, para mí es mala práctica, o al menos desagradable de leer, el no tabular bien los códigos (si me vas a criticar que en el meme están mal, te aviso que no es tanto mi culpa, hice lo que pude), por ejemplo... pero creo que eso es otro tema.
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.191


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: while(true) mala practica?
« Respuesta #3 en: 24 Noviembre 2022, 15:27 pm »

Hola!

Le preguntaste a tu profesoir el porqué te anuló el examen? Porqué el considera que es una mala práctica? Porque él es quien devería responder primero...

Desde mi punto de vista, se considera mala practica pues internamente deve evaluarse la condición que termina el bucle. Y puede que por error (por complejidad del código, lógica del algoritmo u otro) nunca se alcance la condición, por lo cual el bucle infinito sería infinito. Lo ideal es examinar la condición al momento de ejecutar el while (en la declaración del loop).

Ahora, habiendo reverseado muchos programas, puedo asegurarte que (a bajo nivel) el while (True) se usa muchísimo. Incluso en muchos códigos de alto nivel (donde es más sencillo ver los errores en el código) existen innumerables while(true).

Pero siempre está la sombra de error en la lógica del algoritmo, por lo cual la condición de fin nunca se cumple y terminas con un bucle infinito.

Saludos!

PD:
Para mi la mejor manera de usar un bucle infinito es con while(1).

While(1) es lo mismo que While(True) pues 1 resuelve como True cuando se lo evalúa como boolean.

No me cierra mucho eso de las buenas/malas prácticas, hago lo que quiero. Bueno, para mí es mala práctica, o al menos desagradable de leer, el no tabular bien los códigos

Cuando trabajes codeando en una empresa, verás que tendrás que aprender dichas buenas/malas prácticas; pues tu código deberá ser entendido/modificado/evaluado por otras personas (aunque puedes seguir haciendo lo que quieras, en algún momento tendrás inconvenientes por ello). Es por ello que existen dichas prácticas.
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines