ループ: while...do 式Loops: while...do Expression

while...doは、指定されたテスト条件が true の間、反復実行 (ループ) を実行するために使用されます。The while...do expression is used to perform iterative execution (looping) while a specified test condition is true.

構文Syntax

while test-expression do
    body-expression

コメントRemarks

テスト式が評価されます。そのtrue場合、本体式が実行され、テスト式が再評価されます。The test-expression is evaluated; if it is true, the body-expression is executed and the test expression is evaluated again. 本体式には型unitが必要です。The body-expression must have type unit. テスト式がfalseの場合、イテレーションは終了します。If the test expression is false, the iteration ends.

次の例は、 while...do式の使用方法を示しています。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

前のコードの出力は、1から20までのランダムな数値のストリームです。最後のバイトは10です。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!

注意

は、シーケンスwhile...do式やその他のコンピュテーション式で使用できます。その場合は、 while...do式のカスタマイズされたバージョンが使用されます。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.

関連項目See also