Foros del Web » Programando para Internet » PHP »

Cuando Utilizar For Y Cuando While?

Estas en el tema de Cuando Utilizar For Y Cuando While? en el foro de PHP en Foros del Web. Código PHP: <?php for ( $n  =  23 ;  $n  <  50 ;  $n  ++) {echo  sam ;} ?> Código PHP: <?php $n  =  23 ; ...
  #1 (permalink)  
Antiguo 02/01/2005, 07:30
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 1 mes
Puntos: 22
Cuando Utilizar For Y Cuando While?

Código PHP:
<?php
for ($n 23$n 50$n ++)
{echo 
sam;}
?>
Código PHP:
<?php
$n 
23;
while(
$n 50)
{
$n++; echo sam; }
?>
Salu2!.
  #2 (permalink)  
Antiguo 02/01/2005, 09:01
Avatar de royrojas  
Fecha de Ingreso: diciembre-2004
Mensajes: 458
Antigüedad: 19 años, 2 meses
Puntos: 3
ciclos

mira, gustos son gustos, pero siempre hay sus diferencias

el for es principalmente cuando vamos de un numero a otro por ejemplo, necesitamos que el ciclo se repita un numero n de veces por ejemplo de 1 a 10, en el while generalmente no sabemos cuanto tiempo se pueda repetir el cliclo, por que vamos desde un estado a otro estado, pueden ser numericos pero podrian no serlos, podrian ser boobleanos, o strings o el que tu quieras , por ejemplo mientras que numero <> 5, o mientras numero = 1, o mientras booleano = false, etc.

los dos cliclos son parecidos pero no iguales.
__________________
roy rojas
Programación en Español: DotNetcr.com
  #3 (permalink)  
Antiguo 02/01/2005, 09:13
 
Fecha de Ingreso: enero-2004
Ubicación: trujillo
Mensajes: 13
Antigüedad: 20 años, 2 meses
Puntos: 0
el for es mas economico que el while, cuando es una repetición por contador, el while se usa mas cuando es repetición por centinela
  #4 (permalink)  
Antiguo 02/01/2005, 16:24
 
Fecha de Ingreso: abril-2004
Mensajes: 13
Antigüedad: 19 años, 11 meses
Puntos: 0
Gracias, Que es centinela?.
  #5 (permalink)  
Antiguo 02/01/2005, 16:56
Avatar de donpincho  
Fecha de Ingreso: enero-2002
Mensajes: 563
Antigüedad: 22 años, 2 meses
Puntos: 1
Son extamente lo mismo... pero FOR es especial para hacer repeticiones una cantidad de veces que sabes de antemano que va a repetirse. Sin embargo WHILE se utiliza para hacer repeticiones indefinidas y que de un momento a otro puede terminar...

For es mucho mas limpia porque en una sola linea se especifican todas las características del bucle... mientras que con while... y en una pagina con codigo muy largo es más complicado y lioso buscar donde está el incremento y tal....
  #6 (permalink)  
Antiguo 02/01/2005, 22:55
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 10 meses
Puntos: 2
Cita:
Iniciado por donpincho
Son extamente lo mismo... pero FOR es especial para hacer repeticiones una cantidad de veces que sabes de antemano que va a repetirse. Sin embargo WHILE se utiliza para hacer repeticiones indefinidas y que de un momento a otro puede terminar...

For es mucho mas limpia porque en una sola linea se especifican todas las características del bucle... mientras que con while... y en una pagina con codigo muy largo es más complicado y lioso buscar donde está el incremento y tal....
Y entonces, en que parte son EXACTAMENTE lO MISMO¿?

Yo tampoco entiendo cuando usar uno y cuando usar otro.. siempre uso while...
__________________
I Love Programming...
  #7 (permalink)  
Antiguo 03/01/2005, 00:27
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 9 meses
Puntos: 53
Cuando usar uno y cuando otro??

Pues uno usa los WHILE cuando no sabes cuantas veces estara repitiendose, es decir usas una variable CENTINELA (asi se le dice por que te estara "vigilando" cuando salir), para controlar el ciclo.

Usas un FOR cuando sabes que tienes que hacerlo exactamente las veces que le pongas, usas una variable CONTADOR (ira contandote las iteraciones).

por ejemplo si sabes que tienes 10 elementos en un arreglo, entonces usas un FOR para recorrelos, pero si en ves de un arreglo tienes una lista dinamica, que quien sabe cuantos elementos tenga, entonces usas un WHILE, que se hara hasta que el apuntador al siguiente elemento sea NULL

bueno, espero entiendas!

bytes!!!
  #8 (permalink)  
Antiguo 03/01/2005, 01:57
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Si sabes como funcionan ambos, te saldra naturalmente cuando usar uno u otro. El while es mas sencillo, simplemente es un bucle mientras se cumpla la condicion. El for incluye una accion previa al bucle, la condicion que mientras sea cierta se ejecuta el bucle, y una accion que se ejecuta al final de cada bucle (no al principio de cada bucle, como puso anarko).

Esta claro que no usaras un for tal que
Código PHP:
for(;$row=mysql_fetch_assoc();) 
Es decir, sin accion previa y sin accion repetitiva.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #9 (permalink)  
Antiguo 03/01/2005, 09:59
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 1 mes
Puntos: 22
No entiendo, yo estoy colocando $n++ al final del bucle en el caso del FOR.

Y acaso no da = en el caso del WHILE colocar antes de o despues de?.

Ahi si parece cosa de gustos...

Por que sale igual.
  #10 (permalink)  
Antiguo 03/01/2005, 11:33
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Bueno, anarko, es que la variable $n se suele usar dentro del bucle:
Código PHP:
$a=array(1,4,7,9);
for (
$n=0;$n<count($a);$n+=2) {
  echo 
$a[$n];

Supongo que veras que no es lo mismo
Código PHP:
$a=array(1,4,7,9);
$n=0;
while (
$n<count($a)) {
  
$n+=2;
  echo 
$a[$n];

que
Código PHP:
$a=array(1,4,7,9);
$n=0;
while (
$n<count($a)) {
  echo 
$a[$n];
  
$n+=2;

Por eso digo que el el caso concreto te dira que es mejor usar en cada caso. Habra algun caso en el que te de lo mismo, y en otros no. Si quieres, puedes pensar en el while como el caso general, y el for como un caso especifico.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:48.