Foros del Web » Programando para Internet » PHP »

for vs while

Estas en el tema de for vs while en el foro de PHP en Foros del Web. Que opinais vosotros al respeto? Como usais el for y el while, en que casos?...
  #1 (permalink)  
Antiguo 25/02/2011, 03:52
 
Fecha de Ingreso: junio-2009
Ubicación: Madrid
Mensajes: 402
Antigüedad: 14 años, 10 meses
Puntos: 20
for vs while

Que opinais vosotros al respeto? Como usais el for y el while, en que casos?
  #2 (permalink)  
Antiguo 25/02/2011, 07:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: for vs while

creo que el mismo nombre de las costrucciones indican su uso, que no por ser bucles los dos son lo mismo, al final puedes hacerlos funcionar del mismo modo, pero deben entenderse de distinta manera:

for = para
foreach = por cada uno
while = mientras

no es lo mismo decir "por cada uno de los dulces que tengo en la bolsa voy a sacar dos"
Código PHP:
foreach ($candy as $one$two array_shift($candy); 
a "mientras tenga dulces en la bolsa voy a sacar dos"
Código PHP:
while (count($candy) && ($one array_shift($candy)) && ($two array_shift($candy))); 
y en algunos casos el for puede interpretarse como "para tantos dulces que tenga, del primero al ultimo, saco dos"
Código PHP:
for ($i 0$c count($candy); $i $c$one $candy[$i++], $two $candy[$i++]); 
se supone que dichas construcciones deben facilitar la escritura y lectura de código, no es que deba existir una batalla entre que forma es mejor, es un discusión torpe y sin fundamentos...

es una mala practica programar queriendo hacer todo "mejor" desde el punto de vista computacional... se debería escribir software de manera humana, lógica y comprensible a simple lectura... si no alcanzamos a cubrir esta necesidad entonces perdemos el tiempo programando para robots...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 25/02/2011, 11:06
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: for vs while

checa esta liga

http://www.bufa.es/php-foreach-while-for/

esta interesante , aunque me rompio un concepto segun yo alguna vez lei que while era mas rapido que for
  #4 (permalink)  
Antiguo 25/02/2011, 11:12
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: for vs while

Tenes que usar la estructura que mas te convenga

http://www.marcofbb.com.ar/tipos-de-bucles-en-php/
  #5 (permalink)  
Antiguo 25/02/2011, 14:15
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: for vs while

Cita:
checa esta liga

http://www.bufa.es/php-foreach-while-for/

esta interesante , aunque me rompio un concepto segun yo alguna vez lei que while era mas rapido que for
Supongo que foreach resulto ser la opcion mas rapida en ese experimiento porque es la estructura mas adecuada para recorrer cada elemento de una matriz (array) de forma "natural".

Mientras que en while y for realizas una operacion matematica y una comparacion en cada iteracion.

Que pasa si los indices son no consecutivos o no numericos?

array(0 => 'cero', 3 => 'tres', 'diez' => 10);

No usaras while ni for... cierto?
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 25/02/2011, 14:51
 
Fecha de Ingreso: diciembre-2009
Ubicación: dirname(__FILE__)
Mensajes: 149
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: for vs while

En general se usa un for cuando sabes la cantidad de vueltas del ciclo, en cambio usas un while cuando no sabes cuantas vueltas da un ciclo, sino que hasta que una condición sea válida.

Ejemplo básico:
"sumar la altura de 50 personas", conviene un for, porque sabes la cantidad de personas.
Con un while :(
Código PHP:
Ver original
  1. $contador = 0;
  2. $altura = 0;
  3. while($contador < 50) {
  4. $altura += $mundo->getPersona()->getAltura();
  5. }

Con un for :)
Código PHP:
Ver original
  1. $altura = 0;
  2. for($i = 0; $i < 50; $i++) {
  3. $altura += $mundo->getPersona()->getAltura();
  4. }

"sumas la altura de ciertas personas mientras la suma no supere 12metros", conviene un while, porque no se sabe cuántas personas son.

Con un for :(
Código PHP:
Ver original
  1. $altura = 0;
  2. for($i = 0; $altura < 12*100; $i++) {
  3. $altura += $mundo->getPersona()->getAltura();
  4. }

Con un while :)
Código PHP:
Ver original
  1. $altura = 0;
  2. while($altura < 12*100) {
  3. $altura += $mundo->getPersona()->getAltura();
  4. }

Además, en el caso de PHP, un foreach es más cómodo que un for.

En todo caso depende de cada caso. Saludos ;)
__________________
Estreno blog ~ DesarrolladorWeb.cl :)
  #7 (permalink)  
Antiguo 28/02/2011, 03:31
 
Fecha de Ingreso: junio-2009
Ubicación: Madrid
Mensajes: 402
Antigüedad: 14 años, 10 meses
Puntos: 20
Respuesta: for vs while

Esto es lo que yo pretendía, que cada uno de vosotros deis "opinión" al respeto y de donde todos nosotros podemos aprender alguna cosa mas o nueva.

Yo por lo menos ahora tengo mas claro el funcionamiento de estas funciones, también el donde y cuando lo debo aplicar, gracias a vosotros.

Etiquetas: Ninguno
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

SíEste tema le ha gustado a 3 personas




La zona horaria es GMT -6. Ahora son las 00:12.