6.2.1. while文の基本
前回はforを使ったループについて書いてみました。
forでは、初期値を設定して、「最後の値」までの回数を繰り返すという方式でループしていました。
今回はTera Termマクロにおけるもう一つのメジャーなループである、whileを使ってみます。
6.2.1.1. whileの説明
whileでは、whileで指定した値が0以外である場合に、endwhileとの間でループを繰り返すというコマンドです。
whileを使っても、forと同様なループを書くことができます。
whileの場合は、ループをさせる場合の行数が長くなってしまいますが、文法がシンプルである分、書きやすいと感じるかもしれません。
6.2.1.2. whileの書き方
whileのコマンドは以下のような構文で記述します。
このコマンドでは、「値」が0以外の場合に、endwhileとの間に書かれた「何かのコマンド」を繰り返し続けるということになります。
6.2.2. while文のサンプル
それでは、forの時と同じように、10回空Enterを繰り返すマクロをサンプルで書いてみましょう。
6.2.2.1. whileで空Enterを10回繰り返す
whileコマンドでは、構文の中に初期値を設定する場所がありませんので、while文の前に値を変数宣言しておく必要があります。
このマクロでは、iの値が0になるまでループが繰り返され、0になれば、マクロが終了するということになります。
6.2.2.2. whileとforの違い
whileコマンドとforコマンドで同様のループを作れるのだとすれば、その二つの使い道に悩んでしまいそうなところです。
結論としては、使いやすい方を使うという形でいいと思います。
ただ、whileの場合は、意図的にストップするまでループするというマクロを作るのが非常に簡単です。
実際の現場では、コンソールログを表示させるような目的で、定期的に空Enterを叩くようなマクロがあると非常に便利です。
以下が永遠に空Enterを叩き続けるマクロのサンプルです。
この4行を書くだけで、Tera Term上では10秒に一回定期的に空Enterを送信し続けてくれます。
forは原則として有限の値に対してループするため、永遠の空Enterマクロを作る事は出来ません。
6.2.3. まとめ
whileコマンドを使ってもforコマンドと同様にループを作ることができます。
whileコマンドは値が0以外の時にループを行う為、回数を指定したループを作るのはforコマンドより手間がかかります。
反面、無限にループするようなマクロは簡単に作ることができます。
次章では分岐処理について書いてみたいと思います。