Подробное рассмотрение. Повторения операций в цикле Do... While или Do... Until, пока не будет выполнено условие

Обновлен: Ноябрь 2007

На этом занятии будет рассказано, как использовать операторы Do...While и Do...Until для повтора кода в зависимости от определенных условий.

На предыдущем занятии было показано, как использовать оператор For...Next для прохода через блок кода заданное число раз. Но что делать, если количество повторов кода зависит от определенных условий? Операторы Do...While и Do...Until позволяют повторять блок кода, пока значение определенного условия равно True, или до тех пор, пока значение определенного условия не станет равно True.

Например, предположим, что имеется программа для добавления ряда чисел, но требуется, чтобы сумма чисел всегда была не больше 100. Для выполнения добавления можно использовать оператор Do...While следующим образом:

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

В этом коде строка Do While оценивает переменную sum, проверяя, меньше ли она чем 100. Если это так, то выполняется следующая строка кода; если же это не так, то выполнение переходит к строке, следующей за словом Loop. Ключевое слово Loop сообщает коду о необходимости вернуться к строке DoWhile и оценить новое значение sum.

Практическое задание

Чтобы использовать оператор Do...While

  1. В меню Файл выберите пункт Создать проект.

  2. В диалоговом окне Создание проекта в области Шаблоны выберите Приложение Windows.

  3. В поле Имя введите DoWhile и нажмите кнопку ОК.

    Откроется новый проект Windows Forms.

  4. Из Панели элементов перетащите один элемент управления TextBox и один элемент Button на форму.

  5. Дважды щелкните элемент управления Button, чтобы открыть редактор кода.

  6. В обработчик событий Button1_Click введите следующий код:

    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. Нажмите клавишу F5 для запуска программы.

  8. В текстовом поле введите число и нажмите кнопку.

    Появится окно сообщения, отображающее, сколько раз число было добавлено само к себе до достижения 100.

  9. В меню Отладка нажмите кнопку Остановить отладку для завершения программы. Оставьте этот проект открытым. Позже нужно будет добавить в него функции.

Оператор Do...Until

Оператор Do...While повторяет цикл, пока значение условия остается равным True, однако иногда возникает необходимость повторять код до тех пор, пока значение условия не становится равным True. Для этого можно использовать оператор Do...Until как показано ниже:

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

Этот код похож на код для оператора Do...While за исключением того, что на этот раз в условии проверяется, больше ли переменная sum либо равна 100.

Практическое задание

Эта процедура начинается там, где заканчивается "Чтобы использовать оператор Do...While". Если раздел "Чтобы использовать оператор Do...While" не был завершен, необходимо сделать это перед продолжением.

Чтобы использовать оператор Do...Until

  1. Добавьте следующий код под строкой 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. Нажмите клавишу F5 для запуска программы.

  3. В текстовом поле введите число и нажмите кнопку.

    Появится второе окно сообщения, отображающее, сколько раз число было добавлено само к себе перед тем, как оно стало равным или больше 100.

Следующие действия

В этом разделе было рассмотрено, как использовать циклы Do...While и Do...Until для условного повторения кода. На этом этапе можно перейти на к следующему занятию Программный выбор между двумя возможностями. Оператор If... Then.

См. также

Задачи

Повторение действий в программе: использование цикла For... Next

Ссылки

Оператор Do...Loop (Visual Basic)