Autor Tema: ¿Quién me explica for?  (Leído 772 veces)

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
¿Quién me explica for?
« en: 27 de Octubre de 2009, 21:09:31 pm »
Bueno, quisiera saber quién me explica bien el bucle for, ya que busque en php net y no entendí.  :P
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Comunidad PHPeros

¿Quién me explica for?
« en: 27 de Octubre de 2009, 21:09:31 pm »

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:¿Quién me explica for?
« Respuesta #1 en: 27 de Octubre de 2009, 22:43:04 pm »
Hola,

Cuando escribes un bucle for, lo primero son las 3 sentencias que lo definen.
for(*primera*;*segunda*;*tercera*);

La primera sentencia es la que se ejecutará cuando se empieze el for, y solo se ejecuta una vez.
La segunda sentencia debe ser un condicional, que expresa la condicion que se tiene que cumplir para que el bucle siga ejecutandose
La tercera y ultima sentencia es el código que se tiene que ejecutar en cada iteración (vuelta) del bucle.

Ejemplo:
for($i=0$i 10$i++) {
     echo 
"Hola";
}


Cuando se cree este for, lo primero que hará será definir una variable $i con valor 0.
Además, el código entre las llaves ( { } ) se ejecutará siempre que $i sea menor que 10.
Cada vez que el bucle de una vuelta, se sumara 1 a la variable $i.
Por lo tanto el mensaje "Hola!" aparecerá en pantalla 9 veces.

Espero que lo entiendas,
Saludos!
« Última modificación: 28 de Octubre de 2009, 15:50:05 pm por TLX »
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Masato

  • PHPero Avanzado
  • ****
  • Mensajes: 480
  • Karma: 12
  • Sexo: Masculino
  • <?php echo "Solo quiero aprender php"; ?>
    • Ver Perfil
    • Masato Design!
Re:¿Quién me explica for?
« Respuesta #2 en: 28 de Octubre de 2009, 00:17:59 am »
mmm yo tambien tenía dudas sobre el bucle for (namas entiendo el while xD)

Tonces, leyendo ese ejemplo sería mas o menos así??

La 1º línea le da el valor inicial, la otra la cantidad de veces que se ejecuta el bucle, y la última es para que se sume + al 0??

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:¿Quién me explica for?
« Respuesta #3 en: 28 de Octubre de 2009, 04:10:29 am »
He visto que personas usan por ejemplo $algo y luego entre corchetes ponen el valor de $i, como es eso, y otra cosa, la variable siempre tiene que ser $i?
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:¿Quién me explica for?
« Respuesta #4 en: 28 de Octubre de 2009, 15:45:47 pm »
Hola,

No, tu puedes poner las sentencias que mas se adapten a tus necesidades.
Lo de $i es solo un ejemplo, pero bien es cierto que se usa mucho.
Solo debéis saber que el código de la primera sentencia se ejecuta solo la primera vez, el condicional de la segunda sentencia se verifica en cada vuelta, y si es falso entonces se sale del bucle, y la ultima sentencia se ejecuta cada vez que se hace una iteración. Sabiendo eso, podéis usarlos como queráis.

Lo mas común es definir en la primera sentencia una variable que nos servirá para controlar el numero de veces que se ejecuta el bucle, en la segunda sentencia colocar un condicional que verifique que estado tiene la variable que definimos antes y pare el bucle cuando se lo especifiquemos, y en la ultima sentencia colocar un código que modifique la variable que definimos en la primera sentencia, con el fin de que el bucle no sea infinito.

Sin embargo, tu puedes colocar las sentencias que quieras.
Ejemplos de códigos con bucle for
Ejemplo 1. Este código ejecuta un bucle for que va a repetir su código un numero de veces aleatorio
<?php

$aleatorio 
0;
$var FALSE;

for(
$contador=0$var == FALSE$contador++) {
/* Estas son las tres sentencias que ejecutan el bucle for, voy a explicar las tres
En primer lugar, la primera define una variable $contador como 0. Esta variable nos va a servir para contar el numero de veces que 
se ejecuta el bucle, pero no va a servir para terminar el bucle porque no influye en la segunda sentencia, que es el condicional.
En el condicional decimos que si $var es igual a FALSE entonces el bucle debe seguir ejecutandose, y esta comprobación se hace cada vez que se ejecute
el bucle. En caso de que $var sea igual a TRUE, entonces el bucle habrá terminado.
En la ultima sentencia decimos que en cada vuelta que el bucle da, se sume 1 a la variable $contador. De esta forma podemos saber el numero
de veces que se ha ejecutado el bucle */

	
$aleatorio rand(0,30);
	
if(
$aleatorio == 23) { $var TRUE; }
	
/* La variable aleatorio va a almacenar un numero aleatorio desde el 0 hasta el 30 cada vez que el bucle haga una vuelta
	
Si el numero aleatorio sale 23, entonces daremos a la variable $var un valor TRUE, y el bucle se interrumpirá */
}

/* Cuando se salga del bucle, mostramos el numero de veces que se ha ejecutado */
echo $contador;

?>


Ejemplo 2. Este código usa letras en lugar de números, pero al fin y al cabo realiza la misma función que el código que puse en mi mensaje anterior
<?php

$var 
"Prueba";
$contador 1/* Esta variable nos servira para contar el numero de iteraciones que da el bucle */

for($var=&#39;Hola&#39;; $var != &#39;Holaaaaaa&#39;; $var=$var."a") {
/* En la primera definimos $var como "Hola".
En la segunda indicamos que el bucle se siga ejecutando siempre que $var sea distinto de "Holaaaaaa"
En la tercera le añadimos una letra "a" a la variable $var */

echo "El bucle se ha ejecutado ".$contador." veces. <br />";
$contador++; /* Sumamos uno al contador. Colocar esta linea aquí es equivalente a colocarla en la tercera sentencia */


?>


Espero que lo entendáis.
Por cierto, no es necesario añadir una variable para que cuente el numero de veces que se ejecuta el bucle (Como en estos casos la variable $contador), pero lo hago para que entendáis un poco mas el código.
Podéis ejecutar los códigos si queréis, funcionan perfectamente.

Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:¿Quién me explica for?
« Respuesta #5 en: 28 de Octubre de 2009, 15:48:17 pm »
la variable puede ser cualquiera, como si usas $esghiosgvsorgbfwnorf, pero se suele utilizar $i.

Eso de $algo[$i] es para recorrer una array, ej:

$algo 
= array(&#39;Algo&#39;, &#39;Adios&#39;, &#39;Blabla&#39;);
for($i=0;$i<3;$i++) { // definimos $i como 0, y se ejecuta mientras sea menor de 3 (hasta 2) y luego se le suma 1
echo $algo[$i].&#39;<br>&#39;;
}

devolveria:
Algo
Adios
Blabla

Porque muestra $algo[0], $algo[1] y $algo[2]

Desconectado josheles

  • PHPer@
  • **
  • Mensajes: 62
  • Karma: 2
    • Ver Perfil
Re:¿Quién me explica for?
« Respuesta #6 en: 28 de Octubre de 2009, 16:55:38 pm »
Para recorrer arrays lo mejor es un bucle foreach

<?php
 $numeros 
= array(&#39;Uno&#39;,&#39;Dos&#39;,&#39;Tres&#39;,&#39;Cuatro&#39;);

 //Recorremos el array con foreach
 
foreach ($numero as $numeros) {
  echo 
$numero."<br>";
  
/*Devuelve
  Uno
  Dos
  Tres
  Cuatro */
 
}
?>


Sintaxis:
 foreach (variable as array) {
  comandos
 }
<?php 
for ($i=0;$i>1;$i--) {
 echo 
"Soy un buuuuucle interminable";
}
?>

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:¿Quién me explica for?
« Respuesta #7 en: 28 de Octubre de 2009, 19:29:12 pm »
Para recorrer arrays lo mejor es un bucle foreach

<?php
 $numeros 
= array(&#39;Uno&#39;,&#39;Dos&#39;,&#39;Tres&#39;,&#39;Cuatro&#39;);

 //Recorremos el array con foreach
 
foreach ($numero as $numeros) {
  echo 
$numero."<br>";
  
/*Devuelve
  Uno
  Dos
  Tres
  Cuatro */
 
}
?>


Sintaxis:
 foreach (variable as array) {
  comandos
 }

Para empezar array as variable...

y seria foreach($numeros as $numero) {

dije eso por k pidio la explicacion expresa

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:¿Quién me explica for?
« Respuesta #8 en: 28 de Octubre de 2009, 20:51:18 pm »
Para recorrer arrays lo mejor es un bucle foreach

<?php
 $numeros 
= array(&#39;Uno&#39;,&#39;Dos&#39;,&#39;Tres&#39;,&#39;Cuatro&#39;);

 //Recorremos el array con foreach
 
foreach ($numero as $numeros) {
  echo 
$numero."<br>";
  
/*Devuelve
  Uno
  Dos
  Tres
  Cuatro */
 
}
?>


Sintaxis:
 foreach (variable as array) {
  comandos
 }
Eso ya lo sabía.West puedes dar un ejemplo como para que función se podría utilizar
« Última modificación: 28 de Octubre de 2009, 21:15:38 pm por Focux »
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado TheGeorge

  • PHPero Avanzado
  • ****
  • Mensajes: 351
  • Karma: 13
  • Sexo: Masculino
    • Ver Perfil
    • websources
Re:¿Quién me explica for?
« Respuesta #9 en: 29 de Octubre de 2009, 00:16:38 am »
Comúnmente utilizada en arrays
Código: [Seleccionar]
[php]<?php
$array
=array(1=>"Uno"2=>"Dos"3=>"Tres"4=>"Cuatro"); //Definimos cada posición del array.
$tamaño=sizeof($array); // Obtenemos el tamaño o longitud del array (4)
for($a=1$a<=$tamaño$a++){
Echo 
$array[$a]."<br>";
}
?>
[/php]
El resultado sería:
Citar
Uno
Dos
Tres
Cuatro
« Última modificación: 29 de Octubre de 2009, 00:18:25 am por TheGeorge »
¡Solo sé, que nada sé...!

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:¿Quién me explica for?
« Respuesta #10 en: 29 de Octubre de 2009, 16:11:28 pm »
tambien puede usarse, x ejemplo en un paginador


$num 
mysql_num_rows($query)/20// es un ejemplo, aqui se obtendria un numero de paginas
for($i=1;$i<=$num;$i++) {
echo &
#39;<a href="mipagina.php?pag=&#39;.$i.&#39;">Ir a pagina &#39;.$i.&#39;</a>&#39;;
}

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:¿Quién me explica for?
« Respuesta #11 en: 31 de Octubre de 2009, 00:32:23 am »
Gracias, entendido. Karma +
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>