Uso de for - Curso de php: principiante
La segunda sentencia importante que vamos a estudiar, es la sentencia FOR, es algo más compleja de entender que la sentencia IF, pero al igual que esta, es realmente importante comprenderla correctamente. A diferencia de lo que ocurría con IF, for no es una mera herramienta de comparación de condiciones, FOR supone una utilidad completa para controlar todo el proceso: condición, bucle y resolución, es decir. establecemos unas condiciones, mientras se cumplan se genera un bucle y cuando se dejan de cumplir, se interrumpe el bucle.
Veamos un ejemplo y comentémoslo:
<?php
for($ronda = 0; $ronda < 10; $ronda++){
print "Estamos en la ronda " . $ronda . "<br />";
}
?>
El código que tenemos arriba, haría lo siguiente:
- Lee la variable $ronda y guarda en memoria el valor 0.
- Llega al FOR, e interpreta: mientras $ronda sea igual a 0 o $ronda sea menor que 10.
- Si se cumple la condición anterior, imprime "Estamos en la ronda " y después el valor de $ronda, como estamos en la primera ronda, sera de 0.
- Incrementa la variable $ronda en una unidad, ya que os recuerdo que $ronda++, primero imprime y después incrementa.
- Empezamos la segunda ronda, ahora la variable $ronda, vale 1 (porque la hemos incrementado). Como la condición es que $ronda < 10, aún la cumplimos, y por tanto, volvemos a imprimir "Estamos en la ronda"... pero en esta ocasión, ya será 1.
- Volvemos a incrementar... y continuamos en el bucle, hasta que $ronda valga 10, y por tanto se interrumpe automáticamente.
El resultado en pantalla del código sería:
Estamos en la ronda 0
Estamos en la ronda 1
Estamos en la ronda 2
Estamos en la ronda 3
Estamos en la ronda 4
Estamos en la ronda 5
Estamos en la ronda 6
Estamos en la ronda 7
Estamos en la ronda 8
Estamos en la ronda 9
Si os fijais, sale una sentencia por línea, eso lo hemos hecho, añadiendo el "<br />", al final de cada linea. Lo que hace es crear un salto de línea. Otra cosa que os debeis haber fijado, es en la concatenación de variables:
print "Estamos en la ronda " . $ronda . "<br />";
Es como si hubieramos hecho esto:
<?php
$a = "Estamos en la ronda ";
$b = 1;
$c = "<br />";
print $a . $b . $c;
?>
//El resultado sería:
Estamos en la ronda 1
También funciona a la inversa:
<?php
for($ronda = 10; $ronda > 0; $ronda--){
print "Estamos en la ronda " . $ronda . "<br />";
}
?>
Ahora empieza en 10, y en cada pasada, disminuye en intervalo. Es importante que se entiendan las condiciones del for:
for(condición inicial; condición final; incremento){
sentencia
}La parte de incremento, como puede verse, no lleva punto y coma al final, es bastante importante no olvidarse de esto. Otra cuestión importante es la condición, si indicamos que empiece en 0, y luego le decimos que el valor sea menor que 10, como en el ejemplo, nos imprimirá de 0 a 9. Si queremos que imprima de 1 a 10, deberemos hacer esto:
<?php
for($ronda = 1; $ronda < 11; $ronda++){
print "Estamos en la ronda " . $ronda . "<br />";
}
?>
Hemos establecido el límite inferior, es decir, el inicio en 1, y el final en < que 11, es decir, en 10. Otra forma de hacer lo mismo sería así:
<?php
for($ronda = 1; $ronda <= 10; $ronda++){
print "Estamos en la ronda " . $ronda . "<br />";
}
?>
Le hemos puesto el límite superior en <= 10, lo que significa, que tomará el valor 10, y por tanto lo imprimirá.