Loops: while...do Expression (F#)

The while...do expression is used to perform iterative execution (looping) while a specified test condition is true.

while test-expression do
   body-expression

Remarks

The test-expression is evaluated; if it is true, the body-expression is executed and the test expression is evaluated again. The body-expression must have type unit. If the test expression is false, the iteration ends.

The following example illustrates the use of the while...do expression.

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

The output of the previous code is a stream of random numbers between 1 and 20, the last of which is 10.

13 19 8 18 16 2 10
Found a 10!

Note

You can use while...do in sequence expressions and other computation expressions, in which case a customized version of the while...do expression is used. For more information, see Sequences (F#), Asynchronous Workflows (F#), and Computation Expressions (F#).

See Also

Reference

Loops: for...in Expression (F#)

Loops: for...to Expression (F#)

Other Resources

F# Language Reference