elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Duda sobre el bucle do...while(solucionado)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Duda sobre el bucle do...while(solucionado)  (Leído 5,070 veces)
Senior++


Desconectado Desconectado

Mensajes: 957

Ama y haz lo que te de la gana


Ver Perfil
Re: Duda sobre el bucle do...while
« Respuesta #10 en: 25 Noviembre 2013, 20:09 pm »

Hola shellroot, enserio muchas gracias por ayudar, tu código con el for lo entiendo perfectamente, osea lo entiendo totalmente, pero no entiendo este código, este en especial del while

Código:
<?

$texto = "Esto es un ejercicio de repaso.";
$i=0;
do {
  $i++;
}while ($texto[$i]!="u" && $i< strlen($texto));
if ($i==strlen($texto))
  echo "En el texto no existe ninguna letra u.";
else
  echo "La hemos encontrado. Está en la posición $i.";
?>

de ese código lo que no me entra en la cabeza es este codigo en especial:
Código:
while ($texto[$i]!="u"

Mientras $texto sea DISTINTO a "u"...

ok pero  que pasa si $texto[$i] llega al valor 8 osea $texto[8], osea en el valor 8 se encuentra el caracter "u", y el while dice: mientras $texto sea DISTINTO, osea no es distinto ¿por que se sigue ejecutando todo lo que hay detras del bucle while? osea el if en ese momento no se deberia de ejecutar ¿por que se ejecuta?

En resumen: cuando llegue al indice 8 por que se ejecuta lo que hay detras del bucle while? si $texto[8] no es distinto al caracter 'u' , es igual


« Última modificación: 25 Noviembre 2013, 20:13 pm por Senior++ » En línea

Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Duda sobre el bucle do...while
« Respuesta #11 en: 25 Noviembre 2013, 20:34 pm »

En el while se tiene la condición! En este caso es,
Código
  1. # SNIP
  2. while( ($texto[$i] != "u") && ($i < strlen($texto)) ):
  3. # SNIPP

Ahora lo que debes de entender es la logica de programación, operadores tales como: OR, AND, Xor, Not,... Para este ejemplo, se tiene el operador AND ( && ).

Entonces para el while se tienen 2 condiciones,
1er Condición: El caracter en la posición indice ($i) sea diferente de 'u'.
Y
2da Condición: El tamaño de caracteres debe de ser menor del texto recorrido.

Para que el while funcione, se deben de cumplir las dos condiciones, cuando una de ellas sea falsa, el ciclo termina! -caso diferente al tener el operador OR (||, que es cuando se cumplen 1 de las 2 condiciones)-


« Última modificación: 25 Noviembre 2013, 20:37 pm por @shellroot » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Senior++


Desconectado Desconectado

Mensajes: 957

Ama y haz lo que te de la gana


Ver Perfil
Re: Duda sobre el bucle do...while
« Respuesta #12 en: 25 Noviembre 2013, 20:57 pm »

En el while se tiene la condición! En este caso es,
Código
  1. # SNIP
  2. while( ($texto[$i] != "u") && ($i < strlen($texto)) ):
  3. # SNIPP

Ahora lo que debes de entender es la logica de programación, operadores tales como: OR, AND, Xor, Not,... Para este ejemplo, se tiene el operador AND ( && ).

Entonces para el while se tienen 2 condiciones,
1er Condición: El caracter en la posición indice ($i) sea diferente de 'u'.
Y
2da Condición: El tamaño de caracteres debe de ser menor del texto recorrido.

Para que el while funcione, se deben de cumplir las dos condiciones, cuando una de ellas sea falsa, el ciclo termina! -caso diferente al tener el operador OR (||, que es cuando se cumplen 1 de las 2 condiciones)-

entiendo todo eso, pero para que usted lo entienda a lo que me refiero con un codigo mas sencillo:

Código:
$i = 1;
while($i != 10){
$i++;
echo $i."<br />";

}

¿por que imprime en pantalla el numero 10, si el 10 no es distinto de 10?
« Última modificación: 25 Noviembre 2013, 21:04 pm por Senior++ » En línea

Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Duda sobre el bucle do...while
« Respuesta #13 en: 25 Noviembre 2013, 21:21 pm »

·_·

Cuestion de logica. Incrementas y imprimes antes de comprobar el numero. Osease...  el while llega a 9!=10 y ejecuta lo que hay dentro, inmediatamente se suma uno (10) y se impime.

Código
  1. $i = 1;
  2. while($i != 10){echo $i."<br />";  ++$i;}

Saludos
En línea

Senior++


Desconectado Desconectado

Mensajes: 957

Ama y haz lo que te de la gana


Ver Perfil
Re: Duda sobre el bucle do...while
« Respuesta #14 en: 25 Noviembre 2013, 21:54 pm »

 :xD era un ejemplo para que entendiera lo que queria decirle del código anterior...
bueno ya entendí todo

Gracias
En línea

Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Duda sobre el bucle do...while(solucionado)
« Respuesta #15 en: 25 Noviembre 2013, 23:02 pm »

A mi me imprime sólo hasta 9  :silbar:

Código
  1. $i = 1;
  2. while($i != 10):
  3.    echo $i."<br />";
  4.    $i++;
  5. endwhile;

Código:
1
2
3
4
5
6
7
8
9
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda bucle do while « 1 2 »
Programación C/C++
program_10 10 4,106 Último mensaje 11 Enero 2015, 17:11 pm
por Yoel Alejandro
Duda C# Bucle While.
.NET (C#, VB.NET, ASP)
FKT 5 2,320 Último mensaje 18 Agosto 2015, 16:05 pm
por FKT
[Solucionado]Duda sobre execute immediate
Bases de Datos
crisoof 1 3,068 Último mensaje 7 Abril 2016, 15:36 pm
por crisoof
[Solucionado] Duda sobre analisis de PE en Ollydbg.
Análisis y Diseño de Malware
Drewermerc 2 4,725 Último mensaje 30 Junio 2016, 23:40 pm
por Drewermerc
Duda sobre no-ip (solucionado)
Dudas Generales
gabrielprocs 1 1,623 Último mensaje 26 Marzo 2019, 21:55 pm
por gabrielprocs
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines