Foros del Web » Programando para Internet » PHP »

Pregunta muy basica - diferencia for / while

Estas en el tema de Pregunta muy basica - diferencia for / while en el foro de PHP en Foros del Web. Hola, soy muy nuevo en esto de la programacion en PHP y hay una duda que no me puedo sacar de la cabeza ni nadie ...
  #1 (permalink)  
Antiguo 14/11/2008, 17:18
 
Fecha de Ingreso: noviembre-2008
Mensajes: 7
Antigüedad: 15 años, 5 meses
Puntos: 0
Pregunta Pregunta muy basica - diferencia for / while

Hola, soy muy nuevo en esto de la programacion en PHP y hay una duda que no me puedo sacar de la cabeza ni nadie me sabe responder:

Cual es la diferencia entre la instruccion de bucle FOR y WHILE.

En Visual Basic la diferencia es clara y consiste en el modo en que se procesa la condicion: FOR se ejecuta HASTA QUE la condicion sea verdad y WHILE se ejecuta MIENTRAS la condicion sea verdadera.

Pero en PHP parece ser que ambas 2 se ejecutan MIENTRAS la condicion sea verdadera:

for ($n = 0; $n < 10; $n++) {
echo "$n<br>";
}

------

$n = 0;
while ($n < 10;) {
echo "$n<br>";
$n++;
}

Ambas codigos imprimen los numeros del 0 al 9, y se ejecutan MIENTRAS la condicion sea verdadera, asi que no puedo encontrar ninguna diferencia.

Se que es una pregunta muy basica, pero si alguien puede ayudarme, le voy a agradecer mucho.

Saludos.
  #2 (permalink)  
Antiguo 14/11/2008, 17:28
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Pregunta muy basica - diferencia for / while

Hola:

Todos los bucles, en todos los lenguajes son iguales... hay una iniacialización y una condición de salida del bucle... parece que ya sabes como pasar de un bucle for a un bucle while (y viceversa)... la diferencia está en la sintaxis, y por consecuencia, unos son más fácil de implementar que otros en determinadas ocasiones.

Un ejercicio común de programación es pasar un tipo de bucle a otro tipo.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 14/11/2008, 20:22
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Respuesta: Pregunta muy basica - diferencia for / while

En el For() defines un hasta y en el while un mientras

para( i = 0; i<=4; i++)

// algo.

mientras(i =0)
// algo

como veras el for es el para y el while es el mientras y ambos cumplen diferentes condiciones pero en esencia son parecidas mas no iguales.
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #4 (permalink)  
Antiguo 15/11/2008, 14:21
 
Fecha de Ingreso: noviembre-2008
Mensajes: 7
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Pregunta muy basica - diferencia for / while

Cita:
Iniciado por caricatos Ver Mensaje
Todos los bucles, en todos los lenguajes son iguales...
En esto no coincido. Como dije antes, en Visual Basic, FOR y WHILE son diferentes en cuanto a su lectura:

FOR:
for n = 1 to 10 // El bucle se ejecuta HASTA QUE la condicion (n = 10) sea verdadera
print n
next n

WHILE:
n = 1
do while n < 10 // El bucle se ejecuta MIENTRAS QUE la condicion (n < 10) sea verdadera
print n
n = n + 1
loop

Cita:
Iniciado por caricatos Ver Mensaje
la diferencia está en la sintaxis, y por consecuencia, unos son más fácil de implementar que otros en determinadas ocasiones.
En esto coincido; hay sintaxis que son mas faciles de leer.
  #5 (permalink)  
Antiguo 15/11/2008, 14:25
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Pregunta muy basica - diferencia for / while

Es que BASIC es un bicho raro , naah, broma, yo diría que la principal diferencia es que en un bucle for al momento de iniciarse (en la mayoría de los casos) ya se sabe cuántas iteraciones tendrá el código, mientras que en el bucle while no, la condición puede darse en cualquier iteración.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 15/11/2008, 14:27
 
Fecha de Ingreso: noviembre-2008
Mensajes: 7
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Pregunta muy basica - diferencia for / while

Cita:
Iniciado por eddwinpaz Ver Mensaje
En el For() defines un hasta y en el while un mientras

para( i = 0; i<=4; i++)

// algo.

mientras(i =0)
// algo
En PHP, en el FOR tambien se define un MIENTRAS.

for ($i = 0; $i <= 4; $i++) {
echo "$i<br>";
}

Este codigo va a imprimir:

0
1
2
3
4

Porque lo que esta entre llaves se ejecuta MIENTRAS la condicion sea verdadera.

Es por eso que no encuentro diferencia.
  #7 (permalink)  
Antiguo 15/11/2008, 14:34
 
Fecha de Ingreso: noviembre-2008
Mensajes: 7
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Pregunta muy basica - diferencia for / while

Cita:
Iniciado por David el Grande Ver Mensaje
yo diría que la principal diferencia es que en un bucle for al momento de iniciarse (en la mayoría de los casos) ya se sabe cuántas iteraciones tendrá el código, mientras que en el bucle while no, la condición puede darse en cualquier iteración.
Creo que tampoco es asi, ya que se saben o no las veces que se va a ejecutar el bucle dependiendo de si trabajamos con variables o constantes, y tanto FOR y WHILE (sea en Visual o en PHP) pueden trabajar con ambas. Ejemplos:

For en Visual Basic:
For n = z to y
print n
next n

For en PHP:
for ($n = $z; $n <= $y; $n++) {
echo "$n<br>";
}

While en Visual Basic:
n = z
Do While n < y
print n
Loop

While en PHP:
$n = $z;
While ($n < $y) {
echo "$n<br>";
}

Última edición por ellescanito; 15/11/2008 a las 14:36 Razón: Me equivoque en una variable
  #8 (permalink)  
Antiguo 15/11/2008, 14:40
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Pregunta muy basica - diferencia for / while

Había dicho al momento de iniciarlas, sin importar que se inicien con variables o constantes . Y pensando bien, en un bucle for en la mayoría de los casos tendremos una variable que se incremente y trabajaremos con ella, en un bucle while no siempre es necesario.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 15/11/2008, 14:42
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Pregunta muy basica - diferencia for / while

Cita:
Iniciado por ellescanito Ver Mensaje
for n = 1 to 10 // El bucle se ejecuta HASTA QUE la condicion (n = 10) sea verdadera

Esto es una cuestión quasi-filosófica.

Lo que tú interpretas o lees de la sintaxis anterior (porque la sintaxis es la que es, y otra cosa distinta es como cada uno la lee), bien podría leerse también como "el bucle se ejecuta mientras el valor de n está entre 1 y 10".

Por otro lado, con el 'while':

Código PHP:
$n=0;
while ( (
$n<10) ) {
... 
Que leerías como 'haz esto mientras $n no sea 10'. Pero bien podrías usar esta sintaxis:

Código PHP:
$n=0;
while ( !(
$n==10) ) {
... 
... y casi mágicamente lo que antes era 'haz esto mientras $n sea menor que 10', ahora se convierte en 'haz esto hasta que $n sea 10'. Y sin embargo, la esencia y la sintaxis es siempre la misma.

En definitiva... que se puede interpretar como convenga :)

Un saludo.
  #10 (permalink)  
Antiguo 15/11/2008, 23:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pregunta muy basica - diferencia for / while

incluso... podemos hacer bucles lógicos... osea, sin usar variables...

Código PHP:
for (;;)
{
  
// ...
}

while (
true)
{
  
// ...

y esto sirve para hacer repeticiones indefinidas, solo hay una forma de terminar estos bucles... usando la sentencia break

por ejemplo, para renombrar un archivo...

Código PHP:
$foo 'candy.bar';
while (
is_file($foo))
{
  
$foo uniqid('').$foo;

etcétera, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 15/11/2008 a las 23:16
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:36.