> For the complete documentation index, see [llms.txt](https://kurohasu.gitbook.io/fsharpabout/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kurohasu.gitbook.io/fsharpabout/basic/roop.md).

# ループ処理

forループは2種類あり\
・初期値と終値をセットするfor\~toループ\
・範囲をセットするfor\~inループ\
の2種類があります\
それとは別に\
条件が真の間繰り返すwhile\~doループ\
があります。初めにforループから見ていきましょう

### for\~toループ

for\~toループは変数を増減させてループを行い処理が終わるたびに変数を1加減します\
(１ずつ変化するので変数はint型である必要があります)

```
構文:
for <変数>=初期値 to　終値 do
    処理...

(downtoにすると降順にループできます)
```

### for\~inループ

for\~inループは範囲や配列など列挙可能なものを扱うループになります\
2個ずつ開けたり離散した数字を使うことも出来ます

```
構文:
for <変数> in 範囲 do
    処理...
```

### while\~doループ

while\~doループは条件が真の間繰り返すループで無限ループにすることも可能です

```
構文:
while 条件式 do
    条件が真の時に繰り返す処理...
```

以下は各ループを使って1\~10までを表示するプログラムです

```fsharp
//for~toループを使って実装
let mutable count=0 //カウント用変数

for count=1 to 10 do
    printfn "%d" count
```

```fsharp
//for~inループを使って実装
for count in 1..10 do
    printfn "%d" count
```

```fsharp
//while~doループを使って実装
let mutable count=1

while count<=10 do
    printfn "%d" count
    count<-count+1    //1増やす
```
