Compartir a través de


Información detallada: utilizar Do...While y Do...Until para repetir hasta cumplir una condición

Actualización: noviembre 2007

En esta lección, aprenderá a utilizar las instrucciones Do...While y Do...Until para repetir el código basándose en algunas condiciones.

En la lección anterior, aprendió a usar la instrucción For...Next para recorrer un bloque de código un número específico de veces, pero ¿qué ocurre si el número de veces que el código se debe repetir es diferente para algunas condiciones? Las instrucciones Do...While y Do...Until permiten repetir un bloque de código mientras cierta condición sea True o hasta que cierta condición sea True.

Por ejemplo, si se disponía de un programa para agregar una serie de números, pero nunca deseó que la suma de los números fuera mayor que 100. Se podría utilizar la instrucción Do...While para llevar a cabo la suma de la siguiente forma:

Dim sum As Integer = 0
Do While sum < 100
  sum = sum + 10
Loop

En el código anterior, la línea Do While evalúa la variable sum para ver si es menor que 100: si lo es, se ejecuta la siguiente línea de código; si no lo es, pasa a la línea de código que se encuentra a continuación de Loop. La palabra clave Loop le dice al código que regrese a la línea DoWhile y evalúe el nuevo valor de sum.

Inténtelo

Para utilizar una instrucción Do...While

  1. En el menú Archivo, haga clic en Nuevo proyecto.

  2. En el cuadro de diálogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicación para Windows.

  3. En el cuadro Nombre, escriba DoWhile y haga clic en Aceptar.

    Se abre un nuevo proyecto de formularios Windows Forms.

  4. En el Cuadro de herramientas, arrastre un control TextBox y un control Button al formulario.

  5. Haga doble clic en Button para abrir el Editor de código.

  6. En el controlador de eventos Button1_Click, escriba el siguiente código:

    Dim sum As Integer = 0
    Dim counter As Integer = 0
    Do While sum < 100
      sum = sum + CInt(Textbox1.Text)
      counter = counter + 1
    Loop
    MsgBox("The loop has run " & CStr(counter) & " times!")
    
  7. Presione F5 para ejecutar el programa.

  8. En el cuadro de texto, escriba un número y haga clic en el botón.

    Aparece un cuadro de mensaje que muestra cuántas veces se sumó el número a sí mismo antes de llegar a 100.

  9. Para cerrar el programa, en el menú Depuración, haga clic en Detener depuración. Mantenga abierto este proyecto. Más adelante se agregarán elementos.

Instrucción Do...Until

La instrucción Do...While repite un bucle mientras una condición permanece True, pero a veces es posible que desee que el código se repita a sí mismo hasta que una condición se convierta True. Puede utilizar la instrucción Do...Until del siguiente modo.

Dim sum As Integer = 0
Do Until sum >= 100
  sum = sum + 10
Loop

Este código es similar al código de la instrucción Do...While, sólo que esta vez, el código evalúa la variable sum para ver si es igual o mayor que 100.

Inténtelo

Este procedimiento empieza donde terminó "Para utilizar una instrucción Do... While". Si no completó "Para utilizar una instrucción Do... While", debe hacerlo antes de continuar.

Para utilizar una instrucción Do...Until

  1. Agregue el siguiente código debajo de la línea MsgBox.

    Dim sum2 As Integer = 0
    Dim counter2 As Integer = 0
    Do Until sum2 >= 100
      sum2 = sum2 + CInt(Textbox1.Text)
      counter2 = counter2 + 1
    Loop
    MsgBox("The loop has run " & CStr(counter2) & " times!")
    
  2. Presione F5 para ejecutar el programa.

  3. En el cuadro de texto, escriba un número y haga clic en el botón.

    Aparece un segundo cuadro de mensaje que muestra cuántas veces se sumó el número a sí mismo antes de ser igual o mayor que 100.

Pasos siguientes

En este tema, aprendió a utilizar los bucles Do...While y Do...Until para repetir el código de forma condicional. En este punto, puede continuar con la siguiente lección, Hacer que un programa elija entre dos posibilidades: la instrucción If...Then.

Vea también

Tareas

Hacer que un programa repita acciones: establecer bucles For...Next

Referencia

Instrucción Do...Loop (Visual Basic)