Julia早引きノート［06］ループ処理

###ループ処理(書き方例)

```ruby:note06

◆while～end文
    i = 0               # iの初期化
    while i <= 10
        println(i)
        global i += 1   # グローバル変数化
    end

◆for～end文(=イコール使用の場合)
    for i = 1:10
        println(i)
    end

◆for～end文(in使用の場合)
    list = [1, 5, 10]
    for i in list
        println(i)
    end

◆for～enumerate文(インデックス、値を取得)
    list = ["a","b","c","d"]
    for (index, value) in enumerate(list)
        println(index, ":", value)
    end

◆break(ループを中断し、ループ処理全体を終了)
　　break

◆continue(ループ処理において、現在周回の処理を中断、後続の処理もスキップし、次の周回に進む)
　　continue

```

##解説

・Juliaでは、ループ処理として**whilte～end**文と**for～end**文が使用できます。whilte、forともendまでの間の部分で繰返し処理が実行されます。
・Pythonと大きく異なる点は、**end**があることです。
・while、forなどのブロック内で使用される変数はローカル変数のため、ブロック外で使用できません。
・enumerateによるループはpythonと同じように使用できます。
・ループ処理を中断し、ループ処理を抜ける場合はbreakを使用します。
・ループ処理中、現在周回の処理を中断(後続の処理もスキップ)し、次の周回に進みます。

####(1)while～end文の実行結果は以下です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/79f42ce7-b215-6833-f990-aa51ae78373d.png)
4行目で変数iに**global**を付加しています。

変数iをループ処理内部(whileとendの間)だけでなく外部でも使用する場合、このようにglobalを付加します。また、globalを付加しないとループ処理内部で値の変更はできません。

反対に、変数iを変更しない場合は、globalの付加は不要です。
ループ処理内部では読み取りのみ可能です。

####(2)for～end文(=イコール使用の場合)の実行結果は以下です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/a2207193-7ef6-10fd-c3e8-bfaf76e3e5d7.png)
変数iは1から10まで繰返し実行されます。
Juliaではスライス**1:10**のうち、最後尾10まで実行されますのでご注意下さい。
(Pythonは1～9までしか実行されません)

####(3)for～end文(in使用の場合)の実行結果は以下です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/5856d1b2-c4b2-aa11-e37f-cc420fa0594c.png)
2行目のlist部分にリスト型変数を設定することで、in演算子でもループすることができます。

####(4)for～enumerate()文の使い方

pythonのenumerateと同じように使用できます。
リストの中身をインデックス番号と値の両方で取得できます。
※インデックス番号は1から始まります。

```ruby:note06
list = ["a","b","c","d"]
for (index, value) in enumerate(list)
    println(index, ":", value)
end
```

実行結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/f6dedd9b-1920-4611-3be1-c8a90ba0cecb.png)




##もくじ
[Julia早引きノート［01］変数・定数の使い方](https://qiita.com/ttabata/items/a1ada2c0cba03672e105)
[Julia早引きノート［02］算術式、演算子](https://qiita.com/ttabata/items/90900d0914fa317f652d)
[Julia早引きノート［03］複素数]
(https://qiita.com/ttabata/items/225c77a4d71fafc3e482)
[Julia早引きノート［04］正規表現](https://qiita.com/ttabata/items/8b6e4a2b7c2ca299de03)
....
<details><summary>もくじを開く</summary><div>
[Julia早引きノート［05］if文]
(https://qiita.com/ttabata/items/4f0bcff1e32f60402dfb)
[Julia早引きノート［06］ループ処理]
(https://qiita.com/ttabata/items/2a53825101b0b75fb589)
[Julia早引きノート［07］try, catch, finally]
(https://qiita.com/ttabata/items/1d6fe990526c99b65b5f)
[Julia早引きノート［08］変数の型(Int, Float, Bool, Char, String)]
(https://qiita.com/ttabata/items/2b84a826e39bfe432b62)
[Julia早引きノート［09］関数 (1)基本編]
(https://qiita.com/ttabata/items/d9b4f2728ec0dbcc6394)
[Julia早引きノート［10］関数 (2)応用編]
(https://qiita.com/ttabata/items/462e216c43d519f1969d)
[Julia早引きノート［11］Nothing型]
(https://qiita.com/ttabata/items/0e5a6b21968d8752cf0b)
[Julia早引きノート［12］複合型(Composite Type)型]
(https://qiita.com/ttabata/items/27469216a3c33101c825)
[Julia早引きノート［13］タプル]
(https://qiita.com/ttabata/items/ebe35dbfec4efbc1c29a)
[Julia早引きノート［14］リスト(Array型一次元配列)]
(https://qiita.com/ttabata/items/7528863ccbb282e8260d)
[Julia早引きノート［15］辞書(dictionary)]
(https://qiita.com/ttabata/items/77a4f1d02b51d067bfb7)
[Julia早引きノート［16］集合]
(https://qiita.com/ttabata/items/ca8137922a785122037e)
[Julia早引きノート［17］多次元配列 (1)初期化]
(https://qiita.com/ttabata/items/01fecbd14363460a27a6)
[Julia早引きノート［18］多次元配列 (2)様々な演算や関数]
(https://qiita.com/ttabata/items/f35896a5fa005fba7fbc)
[Julia早引きノート［19］多次元配列 (3)サブ配列]
(https://qiita.com/ttabata/items/045c00406fe45270b42e)
[Julia早引きノート［20］ファイル入出力]
(https://qiita.com/ttabata/items/5a99c3998060d161ace8)
[Julia早引きノート［21］JSON、XMLファイルの入出力]
(https://qiita.com/ttabata/items/65ebec11830271f9be71)
[Julia早引きノート［22］Python関数やPythonモジュールの呼び出し]
(https://qiita.com/ttabata/items/3afc8cef40d1e98a7b17)
[Julia早引きノート［23］JuliaでのMatplotlibによるグラフ描画]
(https://qiita.com/ttabata/items/96a0e172addfac690cca)
[Julia早引きノート［24］CSVFiles(DataFrameとの連携)]
(https://qiita.com/ttabata/items/51446731a703b5aca524)
[Julia早引きノート［25］線形代数演算(ベクトル・行列計算)]
(https://qiita.com/ttabata/items/5abe14d5c510e8ca0f54)
(※引き続きコンテンツを増やしていきます)
</div></details>

##関連情報

:paperclip: Julia - 公式ページ
https://julialang.org/

:paperclip: Julia - 日本語公式ドキュメント
https://julia-doc-ja.readthedocs.io/ja/latest/index.html

:paperclip: 初めてのJuliaとインストール (Windows & Linux)
https://qiita.com/ttlabo/items/b05bb43d06239f968035

:paperclip: Julia - Mathematics
https://docs.julialang.org/en/v1/base/math/


##ご意見など

ご意見、間違い訂正などございましたらお寄せ下さい。