Циклы: выражение while...do

Выражение while...do используется для выполнения итеративного выполнения (циклирования) в то время как указанное условие теста имеет значение true.

Синтаксис

while test-expression do
    body-expression

Замечания

Выражение теста вычисляется; если оно trueимеет значение, выполняется выражение тела и выражение теста вычисляется снова. Выражение текста должно иметь тип unit. Если выражение теста равно false, итерация заканчивается.

В следующем примере показано использование while...do выражения.

open System

let lookForValue value maxValue =
  let mutable continueLooping = true
  let randomNumberGenerator = new Random()
  while continueLooping do
    // Generate a random number between 1 and maxValue.
    let rand = randomNumberGenerator.Next(maxValue)
    printf "%d " rand
    if rand = value then
       printfn "\nFound a %d!" value
       continueLooping <- false

lookForValue 10 20

Выходные данные предыдущего кода — это поток случайных чисел от 1 до 20, последний из которых составляет 10.

13 19 8 18 16 2 10
Found a 10!

Примечание.

Вы можете использовать while...do в выражениях последовательности и других вычислительных выражениях, в этом случае используется настраиваемая версия while...do выражения. Дополнительные сведения см. в разделе "Последовательности", "Асинхронные выражения", "Выражения задач" и "Вычисления".

См. также