Bucle while en PHP

Ya hemos el bucle for, que se caracteriza por realizar un bloque de código tantas veces como el programador le indique. Pues bien con el bucle while podremos hacer los mismo y además introducir variables condiciones de salida para no tener que realizar todo el bucle si no es necesario.

Uso básico de while

<?php
$i=0;
echo "<ul>";
while ($i<100)
	{
	echo "<li> valor: ".$i."</li>";
	$i++;
	}
echo "</ul>";
?>

Ejemplo de búsqueda usando while

<?php
$v=array("pepito","antonio","juan","fernando","pedro");
$encontrado=FALSE;
$buscar="juan";
$i=0;
while (!$encontrado && $i<=4)  //Salimos si encontramos o si acabamos
	{
     	if ($v[$i]==$buscar)
     		{
     		echo "encontrado ".$buscar." en la posicion: ".$i."\n";
     		$encontrado=TRUE;    //Marco encontrado a cierto si lo encuentro
     		}
     	else    
	$i++;
	}
if (!$encontrado)    //si no encontrado también se notifica
	{
	echo "Lo sentimos, ".$buscar." no existe en el array. \n";
	}
?>

Ejercicios

  1. Haz un programa que convierta de decimal a binario
  2. Ordena un vector de menor a mayor usando while
  3. Dado un vector numérico muestra sólo los valores pares usando un while

Originally posted 2011-02-06 12:50:41.

9 Responses to “ Bucle while en PHP ”

  1. Nandy dice:

    <?php
    $v=array(3,1,4,7,5);
    $i=0;
    $j=0;
    while ($i<5)
    {
    while($j<5)
    {
    if($v[$i]<$v[$j]){
    $aux = $v[$i];
    $v[$i] = $v[$j];
    $v[$j] = $aux;
    }
    $j++;
    }
    $i++;

    }
    $i=0;
    while($i

    • jlmora dice:

      Falta inicializar la $j a cero por cada pasada, probarlo así:

      <?php
      $v=array(3,1,4,7,5);
      $i=0;
      while ($i<5)
      {
      $j=0;
      while($j<5)

      {
      if($v[$i]<$v[$j])
      {
      $aux = $v[$i];
      $v[$i] = $v[$j];
      $v[$j] = $aux;
      }
      $j++;
      }
      $i++;
      }

      $i=0;
      while($i<5)
      {
      echo $v[$i];
      $i++;
      }

  2. feliciana martínez dice:

    Juan Luis he hecho el ejercicio 2 de while,pero me salen todos los numeros pegados.por ejemplo:1235699,¿c´mo podria hacer para que me salieran separados?.es que no se ve claro.

  3. jlmora dice:

    No te preocupes eso es poco si quieres lo vemos mañana.
    Si tienes mucho empeño puedes probar a concatenar <br /> a cada número, pero no se exactamente como los tienes para indicartelo.
    Si estás haciendo esto:
    while($i<5)
    {
    echo $v[$i];
    $i++;
    }

    sería así
    while($i<5)
    {
    echo $v[$i]."<br />";
    $i++;
    }

    Con el punto se concatenan distintas cadenas en PHP,
    significa fin de línea. Entonces lo que hacemos es pegarle un fin de linea a cada número.

  4. feliciana martínez dice:

    Vamos a ver,¿como es posible que me ponga que tengo un error en la lines 37 si no tengo nada escrito ahí?he puesto pantalla completa para ver si me había dejado algo pero no he visto nadas y es que es el unico fallo que me da.

  5. jlmora dice:

    Si te pone eso debe ser
    1.No has pueso ?>
    2.Te falta un ; por el final
    3.Tienes un caracter que no se ve, con el raton selecciona desde el final hasta donde puedas y pulsa suprimir.
    4.Te falta un }
    Si no lo solucionas no te preocupes, mañana lo vemos.

  6. feliciana martínez dice:

    Sé que estoy muy pesada,¿puedo tomar sacar los pares como una búsqueda de los pares?

  7. jlmora dice:

    No eres pesada.
    El ejercicio es así, es decir, tienes que buscar aquellos valores que son pares y mostrarlos por pantalla. A caído en varios exámenes de pseudocódigo.

  8. michael dice:

    quiero saber como se hace o son los pasos para hacer o me permita entrar a la tabla de multiplicar a travez de una variable n con el ciclo while en php muchas gracias espero su pronta respuesta

Deja un comentario