• Viernes 8 de Noviembre de 2024, 18:58

Autor Tema:  Bucle que se repita hasta que cambie de valor  (Leído 1400 veces)

joao21

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Bucle que se repita hasta que cambie de valor
« en: Miércoles 13 de Mayo de 2009, 19:23 »
0
Buenas me presento ya que soy nuevo
Es la primera vez que escribo en el foro pero hace meses que lo leo y que me sirve de gran ayuda y utilidad
Hoy he decidido escribir dado que no encuentro lo que busco

Espero explicame

Quiero crear un bucle que se repita hasta que cambie el valor de una variable...
Código: vb.net
  1.  
  2. dim poses as integer
  3.  
  4. '-----> la variable poses puede tomar valor 0 o 1
  5. While poses = ' --->???? Aquí lo que quiero hacer es que se repita hasta que el valor cambie a 1 o al contrario hasta que cambiara a 0
  6.                 'Sentencia 1
  7.                 'Sentencia 2 ......
  8.  
  9. End While
  10.  
  11.  


Espero haberme explicado lo mejor posible

Saludos y gracias de antemano

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Bucle que se repita hasta que cambie de valor
« Respuesta #1 en: Miércoles 13 de Mayo de 2009, 21:22 »
0
...Estás muy verde.

Código: Visual Basic
  1. dim poses as integer
  2. dim Actual as integer
  3.  
  4. Actual=poses
  5.  
  6. do
  7.   '...código
  8. loop while Actual = poses
  9.  
  10. ' o también
  11. ' loop until actual <> poses
  12.  
  13.  
El valor que tome poses es irrelevante...
dentro del bucle tiene que haber código que directa o indirectamente modifiquen el valor de poses, de lo contrario tendrás un bucle infinito.
Actual tiene un sentido local al procedimiento, en tanto que poses podría tener un ámbito mayor (si fuera necesario).
«Ma non troppo»
----> ModoVacaciones = False<----

joao21

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Bucle que se repita hasta que cambie de valor
« Respuesta #2 en: Miércoles 13 de Mayo de 2009, 23:01 »
0
gracias lo tenia asi tal como lo pones tu (con otro nombre de variable) la pregunta iba mas enfocada a si habia una "manera más corta" de hacerlo

Muchas gracias x tu respuesta

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Bucle que se repita hasta que cambie de valor
« Respuesta #3 en: Jueves 14 de Mayo de 2009, 10:54 »
0
Un bucle se compone de 4 'partes':
Inicio del bucle, final del bucle, condición de salida/retención y código interno al bucle.
Entonces como puedes ver, no hay forma más corta de expresar 4 ideas que expresando las 4 ideas
. Esto s como un vaso, puede tener o no asa, pero si tiene asa puede cogerse mejor pero ya es una jarra no un vaso.
Si un bucle DO sólo ha de ejecutarse como mucho 1 sóla vez podría ser sustituído por un bloque if ... end if, pero también un bloque if se compone de 4 partes (el bloque más sencillo): Inicio del bloque if, final del bloque if, condición, código interno si cumple la condición...
Aunque el inicio de un bloque (o el final ) se le una la condición realmente siguen siendo 4 partes, pero si alguien quiere considerarlo unido e indicar que son 3 partes, no es materia de discusión, pués sólo son formas de entender una misma cosa.

Ahora si con 'corta' quieres decir otra cosa... piensa que una cosa es el lenguaje de 'expresión' y otra cosa lo que el compilador escribe finalmente, entonces no debe preocuparte que si las instrucciones fueran : "IniciarBucleCondicional .... MientrasLaSiguientecondiciónSeCumpla" aunque esto sea más largo que "Do ... loop while" al compilar serían las mismas instrucciones... Un código VB ligeramente  más largo no necesariamente genera un compilado más largo, es decir no te bases en la cantidad de palabras escritas para deducir que un determinado código será más breve y rápido cuando se compile que uno equivalente con 2 palabras más.
«Ma non troppo»
----> ModoVacaciones = False<----

joao21

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Bucle que se repita hasta que cambie de valor
« Respuesta #4 en: Jueves 14 de Mayo de 2009, 13:23 »
0
Gracias de nuevo por tu respuesta

Simplemente mi cuestion era esa, saber si habia alguna forma de poner en un bucle diciendolo textualmente, "haz esto mientras tengas el mismo valor y una vez que cambies de valor te sales del bucle" pero con tu explicación me ha quedado clarisimo.

Gracias, un saludo