Loops: while...do Expression
while...do expression is used to perform iterative execution (looping) while a specified test condition is true.
while test-expression do body-expression
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
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!
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, Asynchronous Workflows, and Computation Expressions.
We'd love to hear your thoughts. Choose the type you'd like to provide:
Our feedback system is built on GitHub Issues. Read more on our blog.