7.1.1. ifの概要
ifはその名の通り、もし〜ならという意味を表すコマンドで、マクロに何らかの条件分岐をさせたい場合に使用します。
条件分岐という言葉を使うと、妙に小難しい感じがしてしまいますが、実際は日常生活でも色々な条件分岐をしています。
7.1.1.1. 条件分岐とは何か
条件分岐とはわかりやすく言うと、一番いい選択肢と次の選択肢を決めておく事です。
例えば、
「今日メールの返事が来たら諦めない。こなかったら諦める」
「りんごが100円だったらりんごを買う。そうじゃなければみかんを買う」
「明日晴れならバーベキューに行く、曇りなら水族館にする、雨ならカフェに行く、それ以外なら家にいる」
このような事も条件分岐です。
「諦めない=>諦める」のように、次の選択肢は後がないものにすることもありますし、
「りんご=>みかん」のように実際に次の選択肢を明確に定めておく場合もあります。
「晴れ=>曇り=>雨=>それ以外」のように、多岐にわたる選択をする場合もあります。
このような条件をマクロに指示する時に使われるのがif文による条件分岐です。
7.1.1.2. ifの書き方
ifの文法はこうなっています
1 2 3 |
if 条件 then 動作 endif |
ifとendifは必ずセットになって動きます。
ifでif文の始まりを示し、endifでif文の終わりを示します。
上の「メールの返事」に関する条件分岐の例で行くと
1 2 3 |
if 今日メールの返事がくる then 諦めない endif |
という書き方ができる事になります。
このif文の場合は、「今日メールの返事が来る」という条件下においては、「諦めない」という動作をさせるということになります。
「返事がこなければ諦める」の部分は、「今日メールの返事が来る」という条件以外の部分なので、記述を省略する事ができますが、次に書いているelseでしっかりと動作を書いてあげる方がいいでしょう。
7.1.1.3. elseifとelse
いくつも条件を分岐させたい場合は、elseif、elseをifとendifの間に付け足していく事になります。
「明日の予定」についての条件分岐をさせたい場合は以下のように書きます。
1 2 3 4 5 6 7 8 9 |
if 晴れ then バーベキュー elseif 曇り then 水族館 elseif 雨 then カフェ else 自宅 endif |
条件が「晴れ」の場合は「バーベキュー」という動作が実行されます。
「晴れではないが曇り」の場合は「水族館」という動作が実行され、
「晴れでも曇りでもなく雨」の場合は「カフェ」という動作が実行されます。
「晴れでも曇りでも雨でもない」場合は「自宅」という動作が実行される事になります。
if文は一見難しいですが、ちゃんと「どうしたいのか」ということを文章に落としておくと、意外と簡単に書く事ができます。
7.1.2. ifの簡単なマクロを書く
それでは簡単なifのマクロを書いてみます
マクロを書いてみる前に、「どうしたいのか」を文章に落としておきます。
変数VARの値が11以上なら、「10より大きい」とsendlnさせます。
変数VARの値が9以下なら、「10より小さい」とsendlnさせます。
変数VARの値が上記以外なら(つまり10なら)「10です」とsendlnさせます。
1 2 3 4 5 6 7 8 9 |
VAR = 10 if VAR>10 then sendln '10より大きい' elseif VAR<10 sendln '10より小さい' else sendln '10です' endif |
このように簡単に分岐が書けてしまいますね。
7.1.3. まとめ
Tera Termマクロでは、if文を使う事によって、簡単に条件分岐をする事ができます。
if文を書くには、あらかじめどういう動作をさせたいかを文章に落としておくのがおすすめです。
ifとendifはセットで、elseifとelseはなくても動作しますが、あった方がいいでしょう。