俺のための Julia 入門(2)制御

Julia
俺のためのJulia入門
Author

司馬 博文

Published

9/07/2020

概要
Julia は 2012 年に公開された科学計算向きの動的型付け言語である.

1 概要

6つの制御機能1
  1. 複合表現

1.1 scope 内での注意

while, for block 内で global 変数を参照するときは自由でいいが,編集する際は

global i += 1

などとする必要がある.

一方で,if-elseif-else-endブロックでは local scope は導入されない.

2 複合表現

複数の subexpression を順に評価し,最後の subexpression の値を返す expression を compound expression という.

2.1 begin-endブロック

z = begin
    x = 1
    y = 2
    x + y
end
3

2.2 ;演算子

    z = (x = 1; y = 2; x + y)
3

3 条件評価

条件評価では,条件が一致する場合のみ subexpression の評価が行われ,最後に評価された subexpression の値が返される.

3.1 if-elseif-else-endブロック

x = 1; y = 2

if x < y
    println("x is less than y")
elseif x > y
    println("x is greater than y")
else
    println("x is equal to y")
end
x is less than y
if 1
    println("true")
end
LoadError: TypeError: non-boolean (Int64) used in boolean context

3.2 ?,:演算子

a ? b : cとした場合,atrueならbを,falseならcを評価した結果を返す.

println(x < y ? "x is less than y" : "x is greater than or equal to y")
x is less than y

4 短絡評価

  1. 短絡評価される演算子&&, ||を利用する. a && b aがtrueならばbを実行する.そうでないならfalseが返る. 例: n ≥ 0 && error(“n must be negative”)

5 ループ

  1. while block while condition suite end
  2. for block for condition suite end
  • conditionの書き方は,Range型objectを用いる.
    1. i=1:5
    2. i in 1:5

6 例外処理

  1. try [/ catch / finally]:try内のsuiteを処理している間に例外が生じたら,中断してcatchに移る.この2つが全て終わるとfinallyをやる. try suite catch suite #例外処理.失敗した場合の後始末. finally suite #ファイルを閉じるなど. end