Foros del Web » Programando para Internet » PHP »

problema con bucles..

Estas en el tema de problema con bucles.. en el foro de PHP en Foros del Web. Hola chicos,el siguiente ejercicio me entra en un bucle infinito no se ejecuta bien y no se porque.. la pagina deberia de mostrarme la suma ...
  #1 (permalink)  
Antiguo 14/12/2010, 14:49
 
Fecha de Ingreso: marzo-2010
Mensajes: 127
Antigüedad: 14 años, 1 mes
Puntos: 2
Pregunta problema con bucles..

Hola chicos,el siguiente ejercicio me entra en un bucle infinito no se ejecuta bien y no se porque..
la pagina deberia de mostrarme la suma de los digitos de un numero insertado y debera siempre de ir sumando si la suma total es de mas de 1 digito ..hasta que el resultado debe de ser de un solo digito..

Código PHP:
Ver original
  1. <form action="ejer.php" method=POST>
  2. Numero:<input type="text" name=num>
  3. <input type="submit" name=x value="enviar">
  4. </form>
  5. <?php
  6. if(isset($_POST[x])){
  7. $num=$_POST[num];
  8. $longi=strlen($num);
  9. $suma=0;
  10. do{
  11.     for($i=0;$i<$longi;$i++){
  12.         $numero=substr($num,$i,1);
  13.         $suma=$suma+$numero;
  14.     }
  15.     $longisuma=strlen($suma);
  16.     $n=substr($suma,$i,1);
  17.     $suma=$suma+$n;
  18.    
  19.     }while($longisuma>1);
  20.        
  21.     echo "$suma<br>";
  22.     }
  #2 (permalink)  
Antiguo 14/12/2010, 15:21
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: problema con bucles..

Cual es la idea de tener esto fuera del for?

Código PHP:
Ver original
  1. $n=substr($suma,$i,1);
  2. $suma=$suma+$n;
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 14/12/2010, 16:20
 
Fecha de Ingreso: marzo-2010
Mensajes: 127
Antigüedad: 14 años, 1 mes
Puntos: 2
De acuerdo Respuesta: problema con bucles..

Cita:
Iniciado por Triby Ver Mensaje
Cual es la idea de tener esto fuera del for?

Código PHP:
Ver original
  1. $n=substr($suma,$i,1);
  2. $suma=$suma+$n;
hola gracias por leer mi pedida de auxilio jeje,vaya que si me costo ,tenias razon mis for estaban mal..

le di mil vueltas y lo consegui ..

pongo el codigo por si a algun novato como yo le pasa algo parecido..

Código PHP:
Ver original
  1. for($i=0;$i<$longi;$i++){
  2.         $numero=substr($num,$i,1);
  3.         $suma=$suma+$numero;
  4.     }
  5.     if($suma>9){
  6.     for($j=0;$j<strlen($suma);$j++){
  7.     $n=substr($suma,$j,1);
  8.     $suman=$suman+$n;
  9.    
  10.    
  11.     }
  12.    
  13.     }
  14.     echo "$suman<br>";
  15.     }

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




La zona horaria es GMT -6. Ahora son las 01:30.