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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  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,073 veces)
Senior++


Desconectado Desconectado

Mensajes: 957

Ama y haz lo que te de la gana


Ver Perfil
Duda sobre el bucle do...while(solucionado)
« en: 25 Noviembre 2013, 12:00 pm »

Resulta que me encontre con este código:

Código:
<?php

$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.";
?>

Bueno entiendo casi todo del código, lo que no entiendo es
Código:
$texto[$i]!="u"

Saludos ;-)


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

Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata
Mad Antrax
Colaborador
***
Desconectado Desconectado

Mensajes: 2.164


Cheats y Trainers para todos!


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

while ($texto[$i]!="u" && $i< strlen($texto));

Se puede traducir como:

Mientras el contenido de la variable $texto sea distinto de "u" y el contador sea inferior al tamaño de la variable $texto....

Por lo que veo, el bucle recorre el contenido de una variable de texto y si se encuentra el carácter "u" se detiene.

!= es un operador para comparar. Significa no es igual a


« Última modificación: 25 Noviembre 2013, 12:07 pm por ||MadAntrax|| » En línea

No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.
Senior++


Desconectado Desconectado

Mensajes: 957

Ama y haz lo que te de la gana


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

while ($texto[$i]!="u" && $i< strlen($texto));

Se puede traducir como:

Mientras el contenido de la variable $texto sea distinto de "u" y el contador sea inferior al tamaño de la variable $texto....

Por lo que veo, el bucle recorre el contenido de una variable de texto y si se encuentra el carácter "u" se detiene.

!= es un operador para comparar. Significa no es igual a
gracias por responder..

pero la parte que no entiendo es la parte del [$i],¿es como si fuera un indice? osea el primer caracter que evalua es la 'E'? el recorrido ese lo hace gracias a la variable $i no?
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 #3 en: 25 Noviembre 2013, 14:16 pm »

pero la parte que no entiendo es la parte del [$i],¿es como si fuera un indice? osea el primer caracter que evalua es la 'E'? el recorrido ese lo hace gracias a la variable $i no?
Simon, se comporta como si fuera un array
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 #4 en: 25 Noviembre 2013, 14:21 pm »

Simon, se comporta como si fuera un array

Hola gracias por contestar, entonces si yo hago esto:
Código:
$texto[$i]

quiere decir que es un 'simon'?  :xD

entonces si la cadena en este caso es:
Código:
 $texto = "Esto es un ejercicio de repaso.";
La letra E contiene el indice 1, la s el indice 2 y asi sucesivamente?


Lo siento pero no lo entendí bien...
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 #5 en: 25 Noviembre 2013, 15:21 pm »

A manera de pseudocódigo, sí! Pero en realidad el primer indice es 0, es decir,

Código
  1. $aNick = "shellroot";
  2. for($i=0; $i <= strlen($aNick)-1; $i++):
  3.   echo "Letra [".$aNick[$i]."] en el indice [".$i."] <br/>";
  4. endfor;

Código
  1. # Letra [s] en el indice [0]
  2. # Letra [h] en el indice [1]
  3. # Letra [e] en el indice [2]
  4. # Letra [l] en el indice [3]
  5. # Letra [l] en el indice [4]
  6. # Letra [r] en el indice [5]
  7. # Letra [o] en el indice [6]
  8. # Letra [o] en el indice [7]
  9. # Letra [t] en el indice [8]

Y lo de "simon", es una afirmación, SImon! -veo mucho los simpson :p-
« Última modificación: 25 Noviembre 2013, 15:31 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 #6 en: 25 Noviembre 2013, 16:35 pm »

A manera de pseudocódigo, sí! Pero en realidad el primer indice es 0, es decir,

Código
  1. $aNick = "shellroot";
  2. for($i=0; $i <= strlen($aNick)-1; $i++):
  3.   echo "Letra [".$aNick[$i]."] en el indice [".$i."] <br/>";
  4. endfor;

Código
  1. # Letra [s] en el indice [0]
  2. # Letra [h] en el indice [1]
  3. # Letra [e] en el indice [2]
  4. # Letra [l] en el indice [3]
  5. # Letra [l] en el indice [4]
  6. # Letra [r] en el indice [5]
  7. # Letra [o] en el indice [6]
  8. # Letra [o] en el indice [7]
  9. # Letra [t] en el indice [8]

Y lo de "simon", es una afirmación, SImon! -veo mucho los simpson :p-

Ok ya entendí,gracias

Por cierto vi nas cuantas curiosidades en tu código:

 en esta parte:
Código:
 $i=0; $i <= strlen($aNick)-1; $i++
¿no sería mas facil de ponerlo así
Código:
$i=0; $i < strlen($aNick); $i++
¿seria lo mismo no?

La otra es que inicias un bucle for y lo terminas con un endfor ¿que diferencia hay entre ponerlo así o con {}? así:

Código:
$aNick = "shellroot";
for($i=0; $i <= strlen($aNick); $i++){
   echo "Letra [".$aNick[$i]."] en el indice [".$i."] <br/>";
}
por lo demas todo entendido

Saludos y gracias de nuevo
« Última modificación: 25 Noviembre 2013, 16:40 pm por Senior++ » En línea

Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata
HackID1

Desconectado Desconectado

Mensajes: 41


Por HackID1


Ver Perfil
Re: Duda sobre el bucle do...while
« Respuesta #7 en: 25 Noviembre 2013, 16:45 pm »

En esta parte:
Código:
 $i=0; $i <= strlen($aNick)-1; $i++
¿no sería mas facil de ponerlo así
Código:
$i=0; $i < strlen($aNick); $i++
¿seria lo mismo no?

R= No es lo mismo menor ( < ) a menor igual (<= ) , En el 1 caso entra hasta el último carácter de la cadena ( que es la t ).

En el 2 caso solo mostraría hasta la letra ( o ) faltaría por mostrar la t de root.


La otra es que inicias un bucle for y lo terminas con un endfor ¿que diferencia hay entre ponerlo así o con {}? así:

Código:
$aNick = "shellroot";
for($i=0; $i <= strlen($aNick); $i++){
   echo "Letra [".$aNick[$i]."] en el indice [".$i."] <br/>";
}

Esto es otra variante de hacer un for. solo eso cuestión de gustos.

En línea

-------------------------------------------------------
El trabajo va a ocupar gran parte de tu vida, y la única forma de estar satisfecho es hacer lo que consideren un trabajo extraordinario.
Si no lo has descubierto, sigue intentándolo. No te conformes.
STEVE JOBS.
Senior++


Desconectado Desconectado

Mensajes: 957

Ama y haz lo que te de la gana


Ver Perfil
Re: Duda sobre el bucle do...while
« Respuesta #8 en: 25 Noviembre 2013, 18:17 pm »

while ($texto[$i]!="u" && $i< strlen($texto));

Se puede traducir como:

Mientras el contenido de la variable $texto sea distinto de "u" y el contador sea inferior al tamaño de la variable $texto....

Por lo que veo, el bucle recorre el contenido de una variable de texto y si se encuentra el carácter "u" se detiene.

!= es un operador para comparar. Significa no es igual a

Me liastes con tu respuesta, dices mientras la variables $texto[$i] sea distinto de "u" se ejecuta el código pero que pasa cuando la variable $texto[$i] es igual a "u" ¿por que se sigue ejecutando el bloque de código del bucle while(osea el if)

Saludos
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 #9 en: 25 Noviembre 2013, 18:57 pm »

Código
  1. $aNick = "shelluroot";
  2. for($i=0; $i <= strlen($aNick)-1; $i++):
  3.    if($aNick[$i] === 'u'):
  4.        echo "Letra u! muahahhaha 3:) <br/>";
  5.        exit();
  6.    else:
  7.        echo "Letra [".$aNick[$i]."] en el indice [".$i."] <br/>";
  8.    endif;
  9. endfor;

Tiempo atras, cuando empezaba a programar no me gustaba utilizar el ciclo while, pero despues de un tiempo entendí qué: cada cosa se usa para cada cosa, es decir, hay casos en los que se DEBE de usar while...
« Última modificación: 25 Noviembre 2013, 19:00 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.
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,069 Ú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