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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  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 789 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.356


🔵🔵🔵🔵🔵🔵🔵🔵🔵


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: 791


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.199


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."

**Aincrad**


Desconectado Desconectado

Mensajes: 620



Ver Perfil WWW
Re: while(true) mala practica?
« Respuesta #4 en: Ayer a las 14:52 »

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

te hiba a comentar que ambos son exactamente lo mismo, ya que el 1 se evalua como True. pero ya te lo pusieron arriba.

------------

Acerca del post principal. los ciclos while siempre los he considerado malos (es cuestion mia, no tengo motivo), si los he usado pero siempre prefiero usar un ciclo for, incluso cuando necesito un bucle infinito, uso un for.

Podrias poner tu codigo en tal caso para evaluarlo.

« Última modificación: Ayer a las 14:54 por **Aincrad** » En línea



MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.502


I'm fourth.


Ver Perfil WWW
Re: while(true) mala practica?
« Respuesta #5 en: Ayer a las 16:14 »

Técnicamente, lo que se argumenta es el desplace de la condición al cuerpo del while. Yo no creo que esa sea razón para anular un examen.

Y si te anula el examen porque al usar true generas un loop infinito. Hay varias formas en las que puedes producir loops infinitos con condiciones. A veces incluso es mucho más difícil dar con el loop infinito puesto que la condición que lo genera se da también en el cuerpo.

Yo no anularía un examen, a menos que el examen te este evaluando eso, el uso de loops con condiciones. La instrucción debió haber sido explicita. Si la instrucción del examen no incluye los requerimientos mínimos en la cual se debe hacer uso de una condición entonces no hay motivo de anular el examen.

Si tu, sabiendo que el examen era acerca de este tema en específico e inclusive cuenta con la instrucción que delinea los requerimientos entonces si, el maestro hizo bien en anularte el problema/examen.

Los exámenes de programación son para evaluar los conceptos de programación aprendidos. No para saber si sabes programar bien cualquier cosa o no.
« Última modificación: Ayer a las 16:19 por MinusFour » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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