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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Que diferencia hay en utilizar bucle for o while en lenguaje C.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Que diferencia hay en utilizar bucle for o while en lenguaje C.  (Leído 5,888 veces)
NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Que diferencia hay en utilizar bucle for o while en lenguaje C.
« en: 19 Mayo 2016, 19:22 pm »

Hola a todos.
Bueno esa es mi intriga, estoy haciendo un programa para practicar y note que tiene más de 10 bucles y sin pensar demasiado los hice todos con while, quisiera saber si esto de utilizar uno u otro pude afectar la memoria como a la velocidad del programa. -

Saludos.


En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Que diferencia hay en utilizar bucle for o while en lenguaje C.
« Respuesta #1 en: 19 Mayo 2016, 19:28 pm »

para nada, una vez compilador while y for terminan siendo indiferentes



« Última modificación: 19 Mayo 2016, 19:30 pm por engel lex » En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: Que diferencia hay en utilizar bucle for o while en lenguaje C.
« Respuesta #2 en: 19 Mayo 2016, 19:29 pm »

- Con while() puede que no necesites una variable de lazo auxiliar  (i,j, etc)

- A nivel de codigo maquina podria haber diferencias minimas pero tampoco de muchas instrucciones (mas bien algun reorden)

- Velocidad: no debe haber diferencia significativa excepto que:


    a) A nivel de maquina haya alguna instruccion de mas (en while vs for)  +

    b) Hagas millones de iteraciones +

    c) El codigo a ser iterado es muy simple y entonces en comparacion (a) podria hacerse mas signifcativo.
« Última modificación: 19 Mayo 2016, 19:33 pm por HardForo » En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Que diferencia hay en utilizar bucle for o while en lenguaje C.
« Respuesta #3 en: 19 Mayo 2016, 19:32 pm »

- Con while() puede que no necesites una variable de lazo auxiliar  (i,j, etc)

con for tampoco

incluso perfectamente puedes hacer

Código
  1. while(i != false){
  2.  //algo
  3. }
  4. //o
  5. for(;i != false;){
  6.  //algo
  7. }
  8.  

ambos ciclos son identicos en funcionamiento

- A nivel de codigo maquina podria haber diferencias minimas pero tampoco de muchas instrucciones (mas bien algun reorden)

con lo eficiente de la compilación actual los códigos podrían ser identicos (la compilación actual es "inteligente" y compila en el orden más optimo, no en relación plana a las instrucciones)


- Velocidad: no debe haber diferencia significativa porque aporta poco en instrucciones (a nivel maquina) respecto de lo que se supone haces en el bucle (excepto sea tambien muy simple y tengas que hacerlo millones de veces)

 a) A nivel de maquina alguna instruccion de mas (en while vs for)  +

    b) Hagas millones de iteraciones +

    c) El codigo a ser iterado es muy simple y entonces en comparacion (a) podria hacerse mas signifcativo.
lo mismo que arriba... probablemente nada de esto termine haciendo diferencias
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: Que diferencia hay en utilizar bucle for o while en lenguaje C.
« Respuesta #4 en: 19 Mayo 2016, 19:34 pm »

Hay casos donde es irreducible la necesidad de variable de lazo sin embargo @alex @"engel lex" creo tienes razon pero habria que desensamblar para estar seguros y de todas formas existen muchos compiladores como para asegurar.

Creí que Lex venia por Alex  por Alexander y a su vez por Alejandro  :xD

« Última modificación: 19 Mayo 2016, 20:46 pm por HardForo » En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Que diferencia hay en utilizar bucle for o while en lenguaje C.
« Respuesta #5 en: 19 Mayo 2016, 19:35 pm »

Creo tienes razon alex  ;D
alex? :s
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Re: Que diferencia hay en utilizar bucle for o while en lenguaje C.
« Respuesta #6 en: 19 Mayo 2016, 21:41 pm »

Hola.
Gracias a ambos por ocuparse, como lamentablemente todavía desconozco cómo desensamblar
un programa me quedo con que es indiferente utilizar uno u otro. -

Saludos.
En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
Orubatosu


Desconectado Desconectado

Mensajes: 2.515


Ver Perfil WWW
Re: Que diferencia hay en utilizar bucle for o while en lenguaje C.
« Respuesta #7 en: 20 Mayo 2016, 09:38 am »

Si te lo piensas bien, hay una diferencia fundamental entre ambos, que "supongo" puedes ver a simple vista.

Donde se hace la comprobación de la condición del bucle, antes o después de ejecutar el bloque
En línea

"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Que diferencia hay en utilizar bucle for o while en lenguaje C.
« Respuesta #8 en: 20 Mayo 2016, 14:59 pm »

Si te lo piensas bien, hay una diferencia fundamental entre ambos, que "supongo" puedes ver a simple vista.

Donde se hace la comprobación de la condición del bucle, antes o después de ejecutar el bloque

no, no está do while, :P así que si son identicos, ambos comprueban en la entrada
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Re: Que diferencia hay en utilizar bucle for o while en lenguaje C.
« Respuesta #9 en: 20 Mayo 2016, 15:39 pm »

Hola.
Ufff, lo de Orubatosu me había desconcertado, si la condición es falsa el bucle no se ejecuta nunca tanto en for como en while por qué la misma se verifica al comienzo, en cambio, con do while aunque sea falsa la primera vez se lee lo que está dentro del bloque porqué la condición se encuentra al final, espero estar en lo cierto.-     

Saludos.
En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

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