関数について
一般に、関数とは「引数」と呼ばれるデータを受け取り、何らかの処理を実行して結果を返すものです。
MIL/Wには、文字列を操作するためのもの、カーソル位置を移動するためのもの、ユーザー入力のためのものなど、たくさんの関数があります。
すべての関数は、「ヘルプ」の「マクロリファレンス」に「システム関数一覧」を掲載しています。
※システム関数名を入力するためのコマンド「sysfunc」もご利用ください。
処理の分岐-1 if構文
「if構文」は、「if」から「endif」までの構文で、『もし〜ならば○○を行い、それ以外の場合には××を行う』というような、ある条件を満たしいてるときと満たしていないときで行う内容を変えたい(処理を分岐したい)ときに利用します。
『もし〜ならば』の部分には、計算式や論理式、変数など条件にあたるを記述します。
条件文の結果が「0」(またはnull)のときは条件を満たさないものと判断されます。
以下のサンプルソースは、ユーザーに入力を促し、その値によってカーソル位置に挿入する文言を変えています。
*1or2 入力した数字が1か2かをチェックする
@1=input( @str1, "1か2を入力してください。" )
@2=atol( @str1 ) ;入力した数字(文字)を数値に変換して@2にセットする
if @2==1 ;もし、@1の値が1ならば…
insstr("@1の値は1です")
else if @2==2 ;もし、@1の値が2ならば…
insstr("@1の値は2です")
else ;それ以外のときは
insstr("@1の値は1でも2でもありません")
endif
*
※if構文の入力には、マクロのコマンド「if_style」をご利用ください。
※他に if〜then構文もあります。詳細はヘルプをご参照ください。
処理の分岐-2 switch構文
「switch構文」は、「switch」から「endsw」までの構文で、「switch」のあとに指定した式の値によって処理を分けたいときに利用します。
「switch」のすぐ後の式や変数の値が、以降に記述している「case」の後の値と一致したら、その後に記述されている処理を「break」まで実行します。
以下のサンプルソースは、ユーザーに入力を促し、その値が「0」「10」「20」「その他」の4つパターンに分けてカーソル位置にメッセージを入力しています。
*0or10or20 入力した数字が0か10か20かをチェックする
@1=input( @str1, "0か10か20を入力してください。" )
@2=atol( @str1 )
switch @2
case 0 ;@2の値が「0」のとき
insstr("@2の値は0です")
break
case 10 ;@2の値が「10」のとき
insstr("@2の値は10です")
break
case 20 ;@2の値が「20」のとき
insstr("@2の値は20です")
break
default ;その他の値のとき
insstr("@2の値は0,10,20以外です")
break
endsw
*
※switch構文の入力にはマクロコマンド「switch_style」をご利用ください。
繰り返し処理 while構文
繰り返し処理のための実行文で、例えば、ファイルの先頭から最後まで行単位に同じ処理を繰り返すような場合にも利用できます。
「while」直後の条件部分の値がnullになるまで、「while」から「wend」までの間の処理を、繰り返し実行します。
以下のサンプルソースは、@1の値が10になるまで改行を挿入しており、結果として、10回改行を挿入しています。
*insCR10 改行を10個入力
@1 = 0
while @1<10 ;@1の値が10より小さい間
insstr("\n") ;改行を挿入する
@1 = @1 + 1 ;@1の値に1を足す
wend ;whileの行へ
*
※while構文の入力にはマクロコマンド「while_style」をご利用ください。
論理式
ifやcase、whileの各構文の条件部分を論理式で指定することができます。
2つの値が、等しい、等しくない、左項の値が大きい/小さいなどを判定するために指定します。
論理式が成立すると「1」を、論理式が成立しないときは「0」(null)を返します。
以下の表は主なものです。そのほかの記号はヘルプの「演算子」のページをご参照ください。
※文字列の比較は関数で行います。
記号 |
意味 |
記述例 |
== |
等しい |
@1 == @2
(@1 と@2 が等しい) |
!= |
等しくない |
@1 != @2
(@1と@2は等しくない) |
>= |
大なりイコール |
@1 >= @2
(@1は@2より大きいか等しい) |
> |
大なり |
@1 > @2
(@1は@2より大きい) |
<= |
小なりイコール |
@1 <= @2
(@1は@2より小さいか等しい) |
< |
小なり |
@1 < @2
(@1は@2より小さい) |
&& |
and(かつ) |
@1==@2 && @3 < 10
(@1と@2が等しく、かつ、@3が10より小さい) |
|| |
or(または) |
@1==@2 || @1==@3
(@1が@2と等しい、または、@1は@3と等しい) |
演算記号
演算(計算)のルールは数学と同じです。
括弧( )も使用でき、()内に記述された演算を先に実行します。
記号 |
意味 |
記述例 (※@1が「5」として結果も記述します。) |
+ |
足す |
@1 = @1 + 3
(@1に3を足した結果を@1に代入する。この例では@1は「8」になる。) |
- |
引く |
@1 = @1 - 3
(@1から3を引いた結果を@1に代入する。この例では@1は「2」になる。) |
* |
掛ける |
@1 = @1 * 3
(@1に3を掛けた結果を@1に代入する。この例では@1は「15」になる。) |
/ |
割る |
@1 = @1 / 3
(@1を3で割った結果を@1に代入する。この例では@1は「1」になる。) |
% |
余り |
@1 = @1 % 3
(@1を3で割った結果を@1に代入する。この例では@1は「2」になる。) |
この資料の内容は予告なしに変更されることがあります。
いかなる場合でも、この資料の内容およびその運用の結果に関しては一切の責任を負いません。
この資料に記載されている会社名、製品名は、各社の登録商標または商標です。
この資料の一部または全部を無断で使用、複製することはできません。
Copyright(C) MEGASOFT Inc.