Autor
|
Tema: Que diferencia hay en utilizar bucle for o while en lenguaje C. (Leído 5,445 veces)
|
NOB2014
Desconectado
Mensajes: 366
|
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
|
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
Mensajes: 219
HardForo.com
|
- 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
|
- Con while() puede que no necesites una variable de lazo auxiliar (i,j, etc)
con for tampoco incluso perfectamente puedes hacer while(i != false){ //algo } //o for(;i != false;){ //algo }
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
Mensajes: 219
HardForo.com
|
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 
|
|
« Ú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
|
Creo tienes razon alex  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
Mensajes: 366
|
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
|
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
|
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,  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
Mensajes: 366
|
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.-
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Generar 6 números y ordenarlos en el mismo bucle(lenguaje C)
Programación C/C++
|
NOB2014
|
4
|
2,327
|
18 Septiembre 2014, 17:30 pm
por rir3760
|
|
|
Salir de un bucle while sin pulsar Ctrl + d [getchar -Lenguaje C]
Programación C/C++
|
NOB2014
|
2
|
2,316
|
30 Noviembre 2015, 03:09 am
por NOB2014
|
|
|
Ayuda, cómo utilizar una magnitud ingrsada con unidades? (en lenguaje c)
Programación C/C++
|
Undíamartes
|
2
|
1,918
|
12 Octubre 2016, 15:11 pm
por dato000
|
|
|
Imprimir una cadena con puntero sin utilizar un bucle.
Programación C/C++
|
Dano1952
|
6
|
2,414
|
1 Junio 2018, 17:03 pm
por Dano1952
|
|
|
Como puedo utilizar un numero random en un bucle sin que se repita?(cs)
.NET (C#, VB.NET, ASP)
|
Reent
|
2
|
2,069
|
27 Julio 2019, 05:19 am
por WHK
|
|