for文とif文

くりかえし処理を行うforや条件で処理を変えるif文についてまとめます。

for文

使用法 for (変数:初期値) thru (繰り返しが終わる変数の値) do (繰り返したい内容)

変数の初期値は省略可で、その場合1に設定されます。

以下の例で、for文と一緒に print,sprint,display の使用法も確認していきます。

for i thru 10 do print(i);

実行結果.

1
2
3
4
5
6
7
8
9
10

printは自動的に改行が入るので、1行にまとめたい場合はsprintを用います。

for i thru 10 do sprint(i);

実行結果.

1 2 3 4 5 6 7 8 9 10 

評価前と評価後のものをならべてくれる display も便利です。

for i thru 10 do display(sin(i+0.0));

実行結果.

sin(1.0)=0.8414709848078965
sin(2.0)=0.9092974268256817
sin(3.0)=0.1411200080598672
sin(4.0)=-0.7568024953079282
sin(5.0)=-0.9589242746631385
sin(6.0)=-0.2794154981989259
sin(7.0)=0.6569865987187891
sin(8.0)=0.9893582466233818
sin(9.0)=0.4121184852417566
sin(10.0)=-0.5440211108893698

注:sin の中の i+0.0 は、近似値を表示する意味があります。

Note. 細かい書式設定を行う printf というものもあります。

foreach のような使用法

list:[2,3,5]$
for a in list do sprint(a);

実行結果.

2 3 5 

2重ループ

forのなかで、forを使用することができます。

例.

for i thru 3 do (
    for k thru 2 do(
        print("i =",i, "k =",k)
    )
)$

実行結果

i = 1 k = 1
i = 1 k = 2
i = 2 k = 1
i = 2 k = 2
i = 3 k = 1
i = 3 k = 2

ループの脱出

return を使用してループを抜けます。注意が必要なのは、 一つのループしか抜けないことです。C言語でいえばbreakのような意味になります。

for i thru 10 do (
    for k thru 10 do(
        a:1,
        return(1)
    ),
    a:2
)$
print("a =",a)$

実行結果

a = 2

if文

使用法. if (条件式) then (trueの場合の処理) else (falseの処理)

else以下は省略可で、else if として if をつなげることもできます。

論理演算

意味
and かつ
or または
not 否定

等号・不等号など

意味
a = b aとbは等しい
a # b aとbは等しくない
a<=b $\text{a}\leq \text{b}$
a<b a<b
a>=b $\text{a}\geq \text{b}$
a>b a>b

結果
true and true true
false and true false
false or true true
not false true

a:2019$ if mod(a,3)=0 then print("hello")$

実行結果.

hello