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